Upstream version 5.34.92.0
[platform/framework/web/crosswalk.git] / src / chrome / test / data / nacl / manifest_file / pm_manifest_file_test.html
1 <!--
2   Copyright 2014 The Chromium Authors. All rights reserved.
3   Use of this source code is governed by a BSD-style license that can
4   be found in the LICENSE file.
5 -->
6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
7   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
8 <html>
9   <head>
10     <meta http-equiv="Pragma" content="no-cache" />
11     <meta http-equiv="Expires" content="-1" />
12     <script type="text/javascript" src="nacltest.js"></script>
13     <title>Native Client Post Message Manifest File Test</title>
14   </head>
15
16   <body>
17     <h1>Native Client Post Message Manifest File Test</h1>
18   <script type="text/javascript">
19     //<![CDATA[
20 function createModule(id, src, type) {
21   return createNaClEmbed({
22     id: id,
23     src: src,
24     width: 400,
25     height: 400,
26     type: type
27   });
28 }
29 var mime = 'application/x-nacl';
30 if (getTestArguments()['pnacl'] !== undefined) {
31   mime = 'application/x-pnacl';
32 }
33 var embed = createModule('naclModule', 'pm_manifest_file.nmf', mime);
34 embed.basic_tests ='2';
35 embed.stress_tests = '0';
36 document.body.appendChild(embed);
37
38 function setupTests(tester, plugin) {
39   tester.addAsyncTest('Test_00_Init', function(status) {
40     plugin.addEventListener('message', function(message_event) {
41       this.removeEventListener('message', arguments.callee, false);
42       status.assertEqual(message_event.data,
43                          'NaClSrpcClientCtor succeeded\n');
44       status.pass();
45     }, false);
46     plugin.postMessage('init');
47   });
48   tester.addAsyncTest('Test_01_NameService', function(status) {
49     plugin.addEventListener('message', function(message_event) {
50       this.removeEventListener('message', arguments.callee, false);
51       status.assertEqual(message_event.data,
52                          'EnumerateNames: in_out_nbytes 4\nEnumerateNames: in_out_nbytes 8\nEnumerateNames: in_out_nbytes 16\nEnumerateNames: in_out_nbytes 32\nEnumerateNames: in_out_nbytes 47\nnbytes = 47\nKernelService\nManifestNameService\nSecureRandom\n');
53       status.pass();
54     }, false);
55     plugin.postMessage('name_dump');
56   });
57   tester.addAsyncTest('Test_02_ManifestList', function(status) {
58     plugin.addEventListener('message', function(message_event) {
59       this.removeEventListener('message', arguments.callee, false);
60       status.assert(
61           message_event.data.indexOf('Manifest Contents:\n') != -1,
62           '"Manifest Contents:" not found in "' + message_event.data + '"')
63       status.assert(
64           message_event.data.indexOf('nmf says hello world\n') != -1,
65           '"nmf says hello world" not found in "' + message_event.data + '"')
66       status.assert(
67           message_event.data.indexOf('test_file\n') != -1,
68           '"test_file" not found in "' + message_event.data + '"')
69       status.pass();
70     }, false);
71     plugin.postMessage('manifest_list');
72   });
73   tester.addAsyncTest('Test_03_ManifestOpen', function(status) {
74     plugin.addEventListener('message', function(message_event) {
75       this.removeEventListener('message', arguments.callee, false);
76       var golden = 'File Contents:\nTest File Content';
77       status.log('expecting golden: ' + golden);
78       status.log('golden.length: ' + golden.length);
79       status.log('message_event.data.length: ' + message_event.data.length);
80       var min_length = Math.min(message_event.data.length, golden.length);
81       status.log('min_length = ' + min_length);
82       var i = 0;
83       for (i = 0; i < min_length; i++) {
84         var mchar = message_event.data.charAt(i);
85         var gchar = golden.charAt(i);
86         if (mchar != gchar) {
87           status.log('char at ' + i + ' differ: ' + mchar + ' != ' + gchar);
88           status.log('charcodes: ' + mchar.charCodeAt(0) + ' != ' + gchar.charCodeAt(0));
89         }
90       }
91       status.assertEqual(message_event.data, golden);
92       status.pass();
93     }, false);
94     plugin.postMessage('manifest_open');
95   });
96 }
97
98 var tester = new Tester();
99 setupTests(tester, $('naclModule'));
100 tester.waitFor($('naclModule'));
101 tester.run();
102     //]]>
103   </script>
104   </body>
105 </html>