Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(530)

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/braille/liblouis_test.extjs

Issue 927313002: Fix and reenable liblouis chromevox tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@test_api
Patch Set: Fix BrailleTranslatorManager tests that broke when fetchTables was moved into the event handler. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/braille/liblouis.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Tests for the liblouis Native Client wrapper, as seen from 6 * @fileoverview Tests for the liblouis Native Client wrapper, as seen from
7 * the JavaScript interface. 7 * the JavaScript interface.
8 */ 8 */
9 9
10 // Include test fixture. 10 // Include test fixture.
(...skipping 12 matching lines...) Expand all
23 createLiblouis: function() { 23 createLiblouis: function() {
24 return new cvox.LibLouis( 24 return new cvox.LibLouis(
25 chrome.extension.getURL('braille/liblouis_nacl.nmf'), 25 chrome.extension.getURL('braille/liblouis_nacl.nmf'),
26 chrome.extension.getURL('braille/tables')); 26 chrome.extension.getURL('braille/tables'));
27 }, 27 },
28 28
29 createAndAttachLiblouis: function() { 29 createAndAttachLiblouis: function() {
30 var liblouis = this.createLiblouis(); 30 var liblouis = this.createLiblouis();
31 liblouis.attachToElement(document.body); 31 liblouis.attachToElement(document.body);
32 return liblouis; 32 return liblouis;
33 } 33 },
34
35 withTranslator: function(liblouis, tableNames, callback) {
36 liblouis.getTranslator(tableNames,
37 this.continueTest(WhenTestDone.ASSERT, callback));
38 },
34 }; 39 };
35 40
36 function assertEqualsUint8Array(expected, actual) { 41 function assertEqualsUint8Array(expected, actual) {
37 var as_array = []; 42 var as_array = [];
38 var uint8array = new Uint8Array(actual); 43 var uint8array = new Uint8Array(actual);
39 for (var i = 0; i < uint8array.length; ++i) { 44 for (var i = 0; i < uint8array.length; ++i) {
40 as_array[i] = uint8array[i]; 45 as_array[i] = uint8array[i];
41 } 46 }
42 assertEqualsJSON(expected, as_array); 47 assertEqualsJSON(expected, as_array);
43 } 48 }
44 49
45 // Disable all of tests because they are flaky. crbug.com/458643 50 TEST_F('CvoxLibLouisTest', 'checkAllTables', function() {
46
47 TEST_F('CvoxLibLouisTest', 'DISABLED_checkAllTables', function() {
48 var liblouis = this.createAndAttachLiblouis(); 51 var liblouis = this.createAndAttachLiblouis();
49 cvox.BrailleTable.getAll(function(allTables) { 52 var continuation = this.continueTest(WhenTestDone.ASSERT, function(tables) {
50 var i = 0; 53 var i = 0;
51 var checkNextTable = function() { 54 var checkNextTable = function() {
52 var table = allTables[i++]; 55 var table = tables[i++];
53 if (table) { 56 if (table) {
54 liblouis.getTranslator(table.fileNames, function(translator) { 57 this.withTranslator(liblouis, table.fileNames, function(translator) {
55 assertNotEquals(null, translator, 58 assertNotEquals(null, translator,
56 'Table ' + table + ' should be valid'); 59 'Table ' + table + ' should be valid');
57 checkNextTable(); 60 checkNextTable();
58 }); 61 });
59 } else { 62 } else {
60 testDone(); 63 testDone();
61 } 64 }
62 }; 65 }.bind(this);
63 checkNextTable(); 66 checkNextTable();
67 }.bind(this));
68 cvox.BrailleTable.getAll(continuation);
69 });
70
71 TEST_F('CvoxLibLouisTest', 'testTranslateComputerBraille', function() {
72 var liblouis = this.createAndAttachLiblouis();
73 this.withTranslator(liblouis, 'en-us-comp8.ctb', function(translator) {
74 var continuation = this.continueTest(
75 WhenTestDone.ALWAYS,
76 function(cells, textToBraille, brailleToText) {
77 assertEqualsUint8Array([0x53, 0x11, 0x07, 0x07, 0x15, 0x2e], cells);
78 assertEqualsJSON([0, 1, 2, 3, 4, 5], textToBraille);
79 assertEqualsJSON([0, 1, 2, 3, 4, 5], brailleToText);
80 });
81 translator.translate('Hello!', continuation);
64 }); 82 });
65 }); 83 });
66 84
67 TEST_F('CvoxLibLouisTest', 'DISABLED_testTranslateComputerBraille', function () { 85 TEST_F('CvoxLibLouisTest', 'testBackTranslateComputerBraille', function() {
68 var liblouis = this.createAndAttachLiblouis(); 86 var liblouis = this.createAndAttachLiblouis();
69 liblouis.getTranslator('en-us-comp8.ctb', function(translator) { 87 this.withTranslator(liblouis, 'en-us-comp8.ctb', function(translator) {
70 translator.translate( 88 var cells = new Uint8Array([0x53, 0x11, 0x07, 0x07, 0x15, 0x2e]);
71 'Hello!', function(cells, textToBraille, brailleToText) { 89 var continuation = this.continueTest(WhenTestDone.ALWAYS, function(text) {
72 assertEqualsUint8Array([0x53, 0x11, 0x07, 0x07, 0x15, 0x2e], cells); 90 assertEquals('Hello!', text);
73 assertEqualsJSON([0, 1, 2, 3, 4, 5], textToBraille); 91 });
74 assertEqualsJSON([0, 1, 2, 3, 4, 5], brailleToText); 92 translator.backTranslate(cells.buffer, continuation);
75 testDone();
76 });
77 }); 93 });
78 }); 94 });
79 95
80 TEST_F('CvoxLibLouisTest', 'DISABLED_testBackTranslateComputerBraille', function () { 96 TEST_F('CvoxLibLouisTest', 'testTranslateGermanGrade2Braille', function() {
81 var liblouis = this.createAndAttachLiblouis(); 97 var liblouis = this.createAndAttachLiblouis();
82 liblouis.getTranslator('en-us-comp8.ctb', function(translator) { 98 // This is one of the moderately large tables.
83 var cells = new Uint8Array([0x53, 0x11, 0x07, 0x07, 0x15, 0x2e]); 99 this.withTranslator(liblouis, 'de-de-g2.ctb', function(translator) {
84 translator.backTranslate(cells.buffer, function(text) { 100 var continuation = this.continueTest(
85 assertEquals('Hello!', text); 101 WhenTestDone.ALWAYS, function(cells, textToBraille, brailleToText) {
86 testDone(); 102 assertEqualsUint8Array([0x0d, 0x33, 0x1d, 0x39, 0x09], cells);
87 }); 103 assertEqualsJSON([0, 1, 2, 3, 3, 4, 4], textToBraille);
104 assertEqualsJSON([0, 1, 2, 3, 5], brailleToText);
105 });
106 translator.translate('München', continuation);
88 }); 107 });
89 }); 108 });
90 109
91 TEST_F('CvoxLibLouisTest', 'DISABLED_testTranslateGermanGrade2Braille', function () { 110 TEST_F('CvoxLibLouisTest', 'testBackTranslateGermanComputerBraille', function() {
92 var liblouis = this.createAndAttachLiblouis(); 111 var liblouis = this.createAndAttachLiblouis();
93 // This is one of the moderately large tables. 112 this.withTranslator(liblouis, 'de-de-comp8.ctb', function(translator) {
94 liblouis.getTranslator('de-de-g2.ctb', function(translator) { 113 var cells = new Uint8Array([0xb3]);
95 translator.translate( 114 var continuation = this.continueTest(WhenTestDone.ALWAYS, function(text) {
96 'München', function(cells, textToBraille, brailleToText) { 115 assertEquals('ü', text);
97 assertEqualsUint8Array([0x0d, 0x33, 0x1d, 0x39, 0x09], cells); 116 });
98 assertEqualsJSON([0, 1, 2, 3, 3, 4, 4], textToBraille); 117 translator.backTranslate(cells.buffer, continuation);
99 assertEqualsJSON([0, 1, 2, 3, 5], brailleToText);
100 testDone();
101 });
102 }); 118 });
103 }); 119 });
104 120
105 TEST_F('CvoxLibLouisTest', 'DISABLED_testBackTranslateGermanComputerBraille', fu nction() { 121 TEST_F('CvoxLibLouisTest', 'testBackTranslateEmptyCells', function() {
106 var liblouis = this.createAndAttachLiblouis(); 122 var liblouis = this.createAndAttachLiblouis();
107 liblouis.getTranslator('de-de-comp8.ctb', function(translator) { 123 this.withTranslator(liblouis, 'de-de-comp8.ctb', function(translator) {
108 var cells = new Uint8Array([0xb3]); 124 var continuation = this.continueTest(WhenTestDone.ALWAYS, function(text) {
109 translator.backTranslate(cells.buffer, function(text) { 125 assertNotEquals(null, text);
110 assertEquals('ü', text); 126 assertEquals(0, text.length);
111 testDone();
112 }); 127 });
128 translator.backTranslate(new Uint8Array().buffer, continuation);
113 }); 129 });
114 }); 130 });
115 131
116 TEST_F('CvoxLibLouisTest', 'DISABLED_testBackTranslateEmptyCells', function() { 132 TEST_F('CvoxLibLouisTest', 'testGetTranslatorBeforeAttach', function() {
117 var liblouis = this.createAndAttachLiblouis();
118 liblouis.getTranslator('de-de-comp8.ctb', function(translator) {
119 var cells = new Uint8Array();
120 translator.backTranslate(cells.buffer, function(text) {
121 assertNotEquals(null, text);
122 assertEquals(0, text.length);
123 testDone();
124 });
125 });
126 });
127
128 TEST_F('CvoxLibLouisTest', 'DISABLED_testGetTranslatorBeforeAttach', function() {
129 var liblouis = this.createLiblouis(); 133 var liblouis = this.createLiblouis();
130 assertFalse(liblouis.isAttached()); 134 assertFalse(liblouis.isAttached());
131 liblouis.getTranslator('en-us-comp8.ctb', function(translator) { 135 this.withTranslator(liblouis, 'en-us-comp8.ctb', function(translator) {
132 assertNotEquals(null, translator);
133 testDone();
134 });
135 liblouis.attachToElement(document.body);
136 });
137
138 TEST_F('CvoxLibLouisTest', 'DISABLED_testGetInvalidTranslator', function() {
139 var liblouis = this.createAndAttachLiblouis();
140 liblouis.getTranslator('nonexistant-table', function(translator) {
141 assertEquals(null, translator); 136 assertEquals(null, translator);
142 testDone(); 137 testDone();
143 }); 138 });
144 }); 139 });
140
141 TEST_F('CvoxLibLouisTest', 'testGetInvalidTranslator', function() {
142 var liblouis = this.createAndAttachLiblouis();
143 this.withTranslator(liblouis, 'nonexistant-table', function(translator) {
144 assertEquals(null, translator);
145 testDone();
146 });
147 });
148
149 TEST_F('CvoxLibLouisTest', 'testTranslateAfterDetach', function() {
150 var liblouis = this.createAndAttachLiblouis();
151 this.withTranslator(liblouis, 'de-de-comp8.ctb', function(translator) {
152 liblouis.detach();
153 var continuation = this.continueTest(
154 WhenTestDone.ALWAYS,
155 function(cells, textToBraille, brailleToText) {
156 assertEquals(null, cells);
157 assertEquals(null, textToBraille);
158 assertEquals(null, brailleToText);
159 });
160 translator.translate('Hamburg', continuation);
161 });
162 });
163
164 TEST_F('CvoxLibLouisTest', 'testDetachWithOutstandingCallbacks', function() {
165 var liblouis = this.createAndAttachLiblouis();
166 this.withTranslator(liblouis, 'de-de-comp8.ctb', function(translator) {
167 var continuation = this.continueTest(
168 WhenTestDone.ALWAYS,
169 function(cells, textToBraille, brailleToText) {
170 assertEquals(null, cells);
171 assertEquals(null, textToBraille);
172 assertEquals(null, brailleToText);
173 });
174 translator.translate('Berlin', continuation);
175 liblouis.detach();
176 });
177 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/braille/liblouis.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698