tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 21:20:32 +0300
changeset 34 a33bf25e6f72
parent 30 5dc02b23752f
permissions -rw-r--r--
Revision: 201033 Kit: 201035

import Qt 4.7

QtObject {
    property string url

    property bool unsentException: false
    property bool openedException: false

    property bool readyState: false
    property bool openedState: false

    property bool headersReceivedState: false
    property bool headersReceivedHeader: false

    property bool doneState: false
    property bool doneHeader: false

    property bool dataOK: false

    Component.onCompleted: {
        var x = new XMLHttpRequest;

	try {
	    x.getResponseHeader("Test-Header");
	} catch (e) {
	    if (e.code == DOMException.INVALID_STATE_ERR)
		unsentException = true;
	}

        if (x.readyState == XMLHttpRequest.UNSENT)
            readyState = true;

        x.open("GET", url);
        x.setRequestHeader("Accept-Language", "en-US");

        if (x.readyState  == XMLHttpRequest.OPENED)
            openedState = true;

	try {
	    x.getResponseHeader("Test-Header");
	} catch (e) {
	    if (e.code == DOMException.INVALID_STATE_ERR)
		openedException = true;
	}

        var headers = "connection: close\r\ncontent-type: text/html; charset=UTF-8\r\ntest-header: TestValue\r\nmultitest-header: TestValue, SecondTestValue\r\ncontent-length: 11";

        // Test to the end
        x.onreadystatechange = function() {
	    if (x.readyState == XMLHttpRequest.HEADERS_RECEIVED) {
		headersReceivedState = true;

		headersReceivedHeader = (x.getAllResponseHeaders() == headers);
	    } else if (x.readyState == XMLHttpRequest.DONE) {
		doneState = headersReceivedState && true;

		doneHeader = (x.getAllResponseHeaders() == headers);
                dataOK = (x.responseText == "QML Rocks!\n");
            }
        }

        x.send()
    }
}