tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml
branchGCC_SURGE
changeset 31 5daf16870df6
parent 30 5dc02b23752f
equal deleted inserted replaced
27:93b982ccede2 31:5daf16870df6
       
     1 import Qt 4.7
       
     2 
       
     3 QtObject {
       
     4     property string url
       
     5 
       
     6     property bool unsentException: false
       
     7     property bool openedException: false
       
     8 
       
     9     property bool readyState: false
       
    10     property bool openedState: false
       
    11 
       
    12     property bool headersReceivedState: false
       
    13     property bool headersReceivedNullHeader: false
       
    14     property bool headersReceivedValidHeader: false
       
    15     property bool headersReceivedMultiValidHeader: false
       
    16     property bool headersReceivedCookieHeader: false
       
    17 
       
    18     property bool doneState: false
       
    19     property bool doneNullHeader: false
       
    20     property bool doneValidHeader: false
       
    21     property bool doneMultiValidHeader: false
       
    22     property bool doneCookieHeader: false
       
    23 
       
    24     property bool dataOK: false
       
    25 
       
    26     Component.onCompleted: {
       
    27         var x = new XMLHttpRequest;
       
    28 
       
    29 	try {
       
    30 	    x.getResponseHeader("Test-Header");
       
    31 	} catch (e) {
       
    32 	    if (e.code == DOMException.INVALID_STATE_ERR)
       
    33 		unsentException = true;
       
    34 	}
       
    35 
       
    36         if (x.readyState == XMLHttpRequest.UNSENT)
       
    37             readyState = true;
       
    38 
       
    39         x.open("GET", url);
       
    40         x.setRequestHeader("Accept-Language", "en-US");
       
    41 
       
    42         if (x.readyState  == XMLHttpRequest.OPENED)
       
    43             openedState = true;
       
    44 
       
    45 	try {
       
    46 	    x.getResponseHeader("Test-Header");
       
    47 	} catch (e) {
       
    48 	    if (e.code == DOMException.INVALID_STATE_ERR)
       
    49 		openedException = true;
       
    50 	}
       
    51 
       
    52         // Test to the end
       
    53         x.onreadystatechange = function() {
       
    54 	    if (x.readyState == XMLHttpRequest.HEADERS_RECEIVED) {
       
    55 		headersReceivedState = true;
       
    56 
       
    57 		headersReceivedNullHeader = (x.getResponseHeader("Nonexistant-header") == "");
       
    58 		headersReceivedValidHeader = (x.getResponseHeader("Test-HEAder") == "TestValue");
       
    59 		headersReceivedMultiValidHeader = (x.getResponseHeader("MultiTest-HEAder") == "TestValue, SecondTestValue");
       
    60 		headersReceivedCookieHeader = (x.getResponseHeader("Set-Cookie") == "" && x.getResponseHeader("Set-Cookie2") == "");
       
    61 	    } else if (x.readyState == XMLHttpRequest.DONE) {
       
    62 		doneState = headersReceivedState && true;
       
    63 
       
    64 		doneNullHeader = (x.getResponseHeader("Nonexistant-header") == "");
       
    65 		doneValidHeader = (x.getResponseHeader("Test-HEAder") == "TestValue");
       
    66 		doneMultiValidHeader = (x.getResponseHeader("MultiTest-HEAder") == "TestValue, SecondTestValue");
       
    67 		doneCookieHeader = (x.getResponseHeader("Set-Cookie") == "" && x.getResponseHeader("Set-Cookie2") == "");
       
    68                 dataOK = (x.responseText == "QML Rocks!\n");
       
    69             }
       
    70         }
       
    71 
       
    72         x.send()
       
    73     }
       
    74 }
       
    75 
       
    76