Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / http / tests / websocket / send-file-blob.html
blob6eeae4d9546a1c52177ed090d8e8cac042b94cf4
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="/js-test-resources/js-test.js"></script>
5 </head>
6 <body>
7 <div id="description"></div>
8 <div id="console"></div>
9 <script type="text/javascript">
10 description("WebSocket: Send a File.");
12 window.jsTestIsAsync = true;
14 function startsWith(target, prefix)
16 return target.indexOf(prefix) === 0;
19 var fileSystemSize = 1024;
20 var fileName = "websocket-send-file-blob.txt";
21 var messageToWrite = "Hello, world!";
23 function runTest()
25 if (!window.webkitRequestFileSystem) {
26 testFailed("window.webkitRequestFileSystem is not available.");
27 finishJSTest();
28 return;
31 webkitRequestFileSystem(TEMPORARY, fileSystemSize, didGetFileSystem, didFail);
34 function didGetFileSystem(fileSystem)
36 debug("Got FileSystem object.");
37 fileSystem.root.getFile(fileName, {create: true}, didCreateFile, didFail);
40 var fileEntry;
42 function didCreateFile(entry)
44 debug("File created.");
45 fileEntry = entry;
46 shouldBeTrue("fileEntry.isFile");
47 fileEntry.createWriter(didGetFileWriter, didFail);
50 function didGetFileWriter(writer)
52 writer.truncate(0);
53 writer.onerror = function()
55 testFailed("FileWriter operation failed.");
56 endTest();
58 writer.onwrite = function()
60 writer.write(new Blob([messageToWrite]));
61 writer.onwrite = didWriteFile;
65 function didWriteFile()
67 debug("Wrote to file.");
68 fileEntry.file(didGetFile, didFail);
71 var closeEvent;
73 function didGetFile(file)
75 debug("Got File object.");
76 var ws = new WebSocket("ws://127.0.0.1:8880/send-file-blob");
77 ws.onopen = function()
79 ws.send(file);
81 ws.onmessage = function(event)
83 var message = event.data;
84 if (startsWith(message, "PASS"))
85 testPassed(message);
86 else
87 testFailed(message);
89 ws.onclose = function(event)
91 closeEvent = event;
92 shouldBeTrue("closeEvent.wasClean");
93 endTest();
97 function didFail(fileError)
99 testFailed("FileSystem API operation failed: error code = " + fileError.code);
100 endTest();
103 function endTest()
105 if (fileEntry) {
106 debug("Deleting the file.");
107 fileEntry.remove(finishJSTest, finishJSTest);
108 } else
109 finishJSTest();
112 runTest();
114 </script>
115 </body>
116 </html>