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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/cvox2/background/output_test.extjs

Issue 1371483003: cvox2: Avoid uncaught exception on invalid input type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 2 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/cvox2/background/output.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 GEN_INCLUDE(['../../testing/assert_additions.js']); 5 GEN_INCLUDE(['../../testing/assert_additions.js']);
6 GEN_INCLUDE(['../../testing/chromevox_next_e2e_test_base.js']); 6 GEN_INCLUDE(['../../testing/chromevox_next_e2e_test_base.js']);
7 7
8 /** 8 /**
9 * Gets the braille output and asserts that it matches expected values. 9 * Gets the braille output and asserts that it matches expected values.
10 * Annotations in the output that are primitive strings are ignored. 10 * Annotations in the output that are primitive strings are ignored.
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 }); 236 });
237 237
238 TEST_F('OutputE2ETest', 'Input', function() { 238 TEST_F('OutputE2ETest', 'Input', function() {
239 this.runWithLoadedTree( 239 this.runWithLoadedTree(
240 '<input type="text"></input>' + 240 '<input type="text"></input>' +
241 '<input type="email"></input>' + 241 '<input type="email"></input>' +
242 '<input type="password"></input>' + 242 '<input type="password"></input>' +
243 '<input type="tel"></input>' + 243 '<input type="tel"></input>' +
244 '<input type="number"></input>' + 244 '<input type="number"></input>' +
245 '<input type="time"></input>' + 245 '<input type="time"></input>' +
246 '<input type="date"></input>', 246 '<input type="date"></input>' +
247 '<input type="invalidType"</input>',
247 function(root) { 248 function(root) {
248 var expected = {string_: '', 'spans_': [ 249 var expected = {string_: '', 'spans_': [
249 {value: 'name', start: 0, end: 0}, 250 {value: 'name', start: 0, end: 0},
250 251
251 // Earcon 252 // Earcon
252 {value: {earconId: 'EDITABLE_TEXT'}, start: 0, end: 0}, 253 {value: {earconId: 'EDITABLE_TEXT'}, start: 0, end: 0},
253 254
254 // Selection span. 255 // Selection span.
255 {value: {startIndex: 0, endIndex: 0}, start: 1, end: 1}, 256 {value: {startIndex: 0, endIndex: 0}, start: 1, end: 1},
256 257
257 {value: 'value', start: 1, end: 1} 258 {value: 'value', start: 1, end: 1},
259 {value: 'inputType', start: 2}
258 ]}; 260 ]};
259 261
260 var expectedSpeechValues = [ 262 var expectedSpeechValues = [
261 '||Edit text', 263 '||Edit text',
262 '||Edit text, email entry', 264 '||Edit text, email entry',
263 '||Password edit text', 265 '||Password edit text',
264 '||Edit text, number entry', 266 '||Edit text, number entry',
265 {string_: '||Spin button', spans_: [{value: 'name', start: 0, end: 0}, 267 {string_: '||Spin button', spans_: [{value: 'name', start: 0, end: 0},
266 {value: {earconId:'LISTBOX'}, start: 0, end: 0}, 268 {value: {earconId:'LISTBOX'}, start: 0, end: 0},
267 {value: {startIndex: 0, endIndex: 0}, start: 1, end: 1}, 269 {value: {startIndex: 0, endIndex: 0}, start: 1, end: 1},
268 {value: 'value', start: 1, end: 1}, 270 {value: 'value', start: 1, end: 1},
269 {value: 'role', start: 2, end: 13}]}, 271 {value: 'role', start: 2, end: 13}]},
270 {string_: '||Time control', spans_: [{value: 'name', start: 0, end: 0}, 272 {string_: '||Time control', spans_: [{value: 'name', start: 0, end: 0},
271 {value: 'value', start: 1, end: 1}, 273 {value: 'value', start: 1, end: 1},
272 {value: 'role', start: 2, end: 14}]}, 274 {value: 'role', start: 2, end: 14}]},
273 {string_: '||Date control', spans_: [{value: 'name', start: 0, end: 0}, 275 {string_: '||Date control', spans_: [{value: 'name', start: 0, end: 0},
274 {value: 'value', start: 1, end: 1}, 276 {value: 'value', start: 1, end: 1},
275 {value: 'role', start: 2, end: 14}]} 277 {value: 'role', start: 2, end: 14}]},
278 "||Edit text"
276 ]; 279 ];
277 // TODO(plundblad): Some of these are wrong, there should be an initial 280 // TODO(plundblad): Some of these are wrong, there should be an initial
278 // space for the cursor in edit fields. 281 // space for the cursor in edit fields.
279 var expectedBrailleValues = [ 282 var expectedBrailleValues = [
280 ' ed', 283 ' ed',
281 ' @ed', 284 ' @ed',
282 ' pwded', 285 ' pwded',
283 ' #ed', 286 ' #ed',
284 ' spnbtn', 287 ' spnbtn',
285 {string_: 'time'}, 288 {string_: 'time'},
286 {string_: 'date'} 289 {string_: 'date'},
290 ' ed'
287 ]; 291 ];
288 assertEquals(expectedSpeechValues.length, expectedBrailleValues.length); 292 assertEquals(expectedSpeechValues.length, expectedBrailleValues.length);
289 293
290 var el = root.firstChild.firstChild; 294 var el = root.firstChild.firstChild;
291 expectedSpeechValues.forEach(function(expectedValue) { 295 expectedSpeechValues.forEach(function(expectedValue) {
292 var range = cursors.Range.fromNode(el); 296 var range = cursors.Range.fromNode(el);
293 var o = new Output().withSpeechAndBraille(range, null, 'navigate'); 297 var o = new Output().withSpeechAndBraille(range, null, 'navigate');
294 if (typeof expectedValue == 'object') { 298 if (typeof expectedValue == 'object') {
295 assertEqualsJSON(expectedValue, o.speechOutputForTest); 299 assertEqualsJSON(expectedValue, o.speechOutputForTest);
296 } else { 300 } else {
297 expected.string_ = expectedValue; 301 expected.string_ = expectedValue;
302 expected.spans_[4].end = expectedValue.length;
298 assertEqualsJSON(expected, o.speechOutputForTest); 303 assertEqualsJSON(expected, o.speechOutputForTest);
299 } 304 }
300 el = el.nextSibling; 305 el = el.nextSibling;
301 }); 306 });
302 307
303 el = root.firstChild.firstChild; 308 el = root.firstChild.firstChild;
304 expectedBrailleValues.forEach(function(expectedValue) { 309 expectedBrailleValues.forEach(function(expectedValue) {
305 var range = cursors.Range.fromNode(el); 310 var range = cursors.Range.fromNode(el);
306 var o = new Output().withBraille(range, null, 'navigate'); 311 var o = new Output().withBraille(range, null, 'navigate');
307 if (typeof expectedValue === 'string') { 312 if (typeof expectedValue === 'string') {
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 assertEqualsJSON({string_: '|that has content', 520 assertEqualsJSON({string_: '|that has content',
516 spans_: [ 521 spans_: [
517 {value: 'name', start: 1, end: 17} 522 {value: 'name', start: 1, end: 17}
518 ]}, o.speechOutputForTest); 523 ]}, o.speechOutputForTest);
519 checkBrailleOutput( 524 checkBrailleOutput(
520 'that has content', 525 'that has content',
521 [{value: new Output.NodeSpan(el), start: 0, end: 16}], 526 [{value: new Output.NodeSpan(el), start: 0, end: 16}],
522 o); 527 o);
523 }); 528 });
524 }); 529 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/cvox2/background/output.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698