Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / websocket / workers / resources / cookie-ws-to-ws.js
1 if (self.postMessage)
2     runTests();
3 else
4     onconnect = handleConnect;
5
6 function handleConnect(event)
7 {
8     self.postMessage = function (message) {
9         event.ports[0].postMessage(message);
10     };
11     runTests();
12 }
13
14 function setCookie() {
15     return new Promise(function (resolve, reject)
16     {
17         var opened = false;
18
19         var ws = new WebSocket('ws://127.0.0.1:8880/set-cookie');
20         ws.onopen = function () {
21             opened = true;
22             ws.close();
23         };
24         ws.onmessage = function (evt) {
25             reject('Unexpected message event on set-cookie socket');
26         };
27         ws.onerror = function () {
28             reject('Error on set-cookie socket');
29         };
30         ws.onclose = function (evt) {
31             if (opened)
32                 resolve();
33             else
34                 reject('Close event handler is called on set-cookie socket before receiving open event');
35         };
36     });
37 }
38
39 function echoCookie() {
40     return new Promise(function (resolve, reject)
41     {
42         var ws = new WebSocket('ws://127.0.0.1:8880/echo-cookie');
43         ws.onmessage = function (evt) {
44             resolve(evt.data);
45         };
46         ws.onerror = function () {
47             reject('Error on echo-cookie socket');
48         };
49         ws.onclose = function (evt) {
50             reject('Close event handler is called on echo-cookie socket before receiving any message event');
51         };
52     });
53 }
54
55 function runTests()
56 {
57     setCookie().then(
58         function () {
59             return echoCookie();
60         }
61     ).then(
62         function (cookie) {
63             if (cookie != 'WK-WebSocket-test-domain-pass=1; WK-WebSocket-test-path-pass=1; WK-WebSocket-test=1')
64                 return Promise.reject('Echoed cookie is incorrect');
65
66             postMessage("DONE");
67         }
68     ).catch(
69         function (reason) {
70             postMessage('FAIL: ' + reason);
71         }
72     );
73 }