| /* |
| * Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| * for details. All rights reserved. Use of this source code is governed by a |
| * BSD-style license that can be found in the LICENSE file. |
| */ |
| /** |
| * @assertion |
| * @description Tests HttpRequest 'text' loading with the .responseType and .response attributes. |
| */ |
| import "dart:html"; |
| import "../../../Utils/async_utils.dart"; |
| import "../../../Utils/expect.dart"; |
| import "../../testcommon.dart"; |
| |
| const String htmlEL = r''' |
| <style type="text/css"> |
| .box { |
| display: box; |
| border: 1px solid black; |
| margin-bottom: 0.5em; |
| } |
| .boxheader { |
| font-weight: bold; |
| color: maroon; |
| } |
| pre { |
| margin-left: 2em; |
| } |
| </style> |
| <div class="box"><span class="boxheader">responseText</span> |
| <pre id="id1">@@No result@@</pre> |
| </div> |
| <br> |
| '''; |
| |
| HttpRequest xhr; |
| |
| void load(e) { |
| print("received response object of type ${xhr.response.runtimeType}"); |
| |
| // Make sure exception is thrown if responseType is set too late in the loading process. |
| // .responseType was previously set to "text". Let's try setting it to "arraybuffer". |
| Expect.throws(() { |
| xhr.responseType = "arraybuffer"; |
| } |
| , (ex)=>true |
| , "exception not thrown when xhr.responseType is set to valid value too late in the loading process" |
| ); |
| |
| // Get .responseText |
| document.getElementById("id1").firstChild.text = xhr.responseText; |
| |
| // .response is really just an alias to .responseText when .responseType is set to "text". |
| // Make sure they're the same. |
| Expect.equals(xhr.response, xhr.responseText, "xhr.response != xhr.responseText."); |
| xhr = null; |
| asyncEnd(); |
| } |
| |
| void main() { |
| document.body.appendHtml(htmlEL, treeSanitizer: NodeTreeSanitizer.trusted); |
| |
| xhr = new HttpRequest(); |
| xhr.onLoad.listen(load); |
| asyncStart(); |
| xhr.open("GET", "$testSuiteRoot/fast/xmlhttprequest/resources/xmlhttprequest-get-data.xml", async:true); |
| |
| // Make sure we can set responseType to "text" before send() is called. |
| xhr.responseType = "text"; |
| Expect.equals("text", xhr.responseType, "xhr.responseType was not set to 'text'."); |
| |
| xhr.send(null); |
| } |