tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml
author William Roberts <williamr@symbian.org>
Thu, 22 Jul 2010 16:41:55 +0100
branchGCC_SURGE
changeset 31 5daf16870df6
parent 30 5dc02b23752f
permissions -rw-r--r--
Catchup to latest Symbian^4

import Qt 4.7

QtObject {
    property string url
    property int expectedStatus

    property bool unsentException: false;
    property bool openedException: false;
    property bool sentException: false;

    property bool headersReceived: false
    property bool loading: false
    property bool done: false

    property bool resetException: false

    property bool dataOK: false

    Component.onCompleted: {
        var x = new XMLHttpRequest;

	try {
	    var a = x.status;
	} catch (e) {
	    if (e.code == DOMException.INVALID_STATE_ERR)
		unsentException = true;
	}

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

	try {
	    var a = x.status;
	} catch (e) {
	    if (e.code == DOMException.INVALID_STATE_ERR)
		openedException = true;
	}

        // Test to the end
        x.onreadystatechange = function() {
            if (x.readyState == XMLHttpRequest.HEADERS_RECEIVED) {
                if (x.status == expectedStatus)
                    headersReceived = true;
            } else if (x.readyState == XMLHttpRequest.LOADING) {
                if (x.status == expectedStatus)
                    loading = true;
            } else if (x.readyState == XMLHttpRequest.DONE) {
                if (x.status == expectedStatus)
                    done = true;

                if (expectedStatus == 404) {
                    dataOK = (x.responseText == "");
                } else {
                    dataOK = (x.responseText == "QML Rocks!\n");
                }

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

                try {
                    var a = x.status;
                } catch (e) {
                    if (e.code == DOMException.INVALID_STATE_ERR)
                        resetException = true;
                }

            }
        }

        x.send()

	try {
	    var a = x.status;
	} catch (e) {
	    if (e.code == DOMException.INVALID_STATE_ERR)
		sentException = true;
	}
    }
}