- add sources.
[platform/framework/web/crosswalk.git] / src / native_client_sdk / src / tests / nacl_io_socket_test / example.js
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 // Called by the common.js module.
5
6 function moduleDidLoad() {
7   // The module is not hidden by default so we can easily see if the plugin
8   // failed to load.
9   common.hideModule();
10 }
11
12 var currentTestEl = null;
13
14 function startCommand(testName) {
15   var testListEl = document.getElementById('tests');
16   var testEl = document.createElement('li');
17   var testRowEl = document.createElement('div');
18   var testNameEl = document.createElement('span');
19   var testResultEl = document.createElement('span');
20   testRowEl.classList.add('row');
21   testNameEl.classList.add('name');
22   testNameEl.textContent = testName;
23   testResultEl.classList.add('result');
24   testRowEl.appendChild(testNameEl);
25   testRowEl.appendChild(testResultEl);
26   testEl.appendChild(testRowEl);
27   testListEl.appendChild(testEl);
28
29   currentTestEl = testEl;
30 }
31
32 function failCommand(fileName, lineNumber, summary) {
33   var testMessageEl = document.createElement('pre');
34   testMessageEl.textContent += fileName + ':' + lineNumber + ': ' + summary;
35   currentTestEl.appendChild(testMessageEl);
36 }
37
38 function endCommand(testName, testResult) {
39   var testRowEl = currentTestEl.querySelector('.row');
40   var testResultEl = currentTestEl.querySelector('.result');
41   testRowEl.classList.add(testResult);
42   testResultEl.textContent = testResult;
43 }
44
45 function handleMessage(event) {
46   var msg = event.data;
47   var firstColon = msg.indexOf(':');
48   var cmd = msg.substr(0, firstColon);
49   var cmdFunctionName = cmd + 'Command';
50   var cmdFunction = window[cmdFunctionName];
51
52   if (typeof(cmdFunction) !== 'function') {
53     console.log('Unknown command: ' + cmd);
54     console.log('  message: ' + msg);
55     return;
56   }
57
58   var argCount = cmdFunction.length;
59
60   // Don't use split, because it will split all commas (for example any commas
61   // in the test failure summary).
62   var argList = msg.substr(firstColon + 1);
63   args = [];
64   for (var i = 0; i < argCount - 1; ++i) {
65     var arg;
66     var comma = argList.indexOf(',');
67     if (comma === -1) {
68       if (i !== argCount - 1) {
69         console.log('Bad arg count to command "' + cmd + '", expected ' +
70                     argCount);
71         console.log('  message: ' + msg);
72       } else {
73         arg = argList;
74       }
75     } else {
76       arg = argList.substr(0, comma);
77       argList = argList.substr(comma + 1);
78     }
79     args.push(arg);
80   }
81
82   // Last argument is the rest of the message.
83   args.push(argList);
84
85   cmdFunction.apply(null, args);
86 }