tts_background_test.extjs revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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
3// found in the LICENSE file.
4
5// Include test fixture.
6GEN_INCLUDE(['../../testing/chromevox_e2e_test_base.js',
7             '../../testing/assert_additions.js']);
8
9// E2E tests for TtsBackground.
10
11/**
12 * Test fixture.
13 * @constructor
14 * @extends {ChromeVoxE2ETest}
15 */
16function CvoxTtsBackgroundTest() {}
17
18CvoxTtsBackgroundTest.prototype = {
19  __proto__: ChromeVoxE2ETest.prototype
20};
21
22SYNC_TEST_F('CvoxTtsBackgroundTest', 'Preprocess', function() {
23  var tts = new cvox.TtsBackground(false);
24  var preprocess = tts.preprocess.bind(tts);
25
26  // Punctuation.
27  assertEquals('dot', preprocess('.'));
28  assertEquals('x.', preprocess('x.'));
29  assertEquals('.x', preprocess('.x'));
30  assertEquals('space', preprocess(' '));
31  assertEquals('', preprocess('  '));
32  assertEquals('A', preprocess('a'));
33  assertEquals('A', preprocess('A'));
34  assertEquals('a.', preprocess('a.'));
35  assertEquals('.a', preprocess('.a'));
36
37  // All-caps words and camel case.
38  assertEquals('please avoid shouting', preprocess('PLEASE AVOID SHOUTING'));
39  assertEquals('abcd', preprocess('ABCD'));
40  assertEquals('L P T R', preprocess('LPTR'));
41  assertEquals('background T T S', preprocess('backgroundTTS'));
42  assertEquals('camel Case', preprocess('camelCase'));
43
44  // Pronunciation dictionary.
45  assertEquals('gee mail', preprocess('gmail'));
46  assertEquals('control', preprocess('ctrl'));
47  assertEquals('control', preprocess('CTRL'));
48  assertEquals('control', preprocess('Ctrl'));
49  assertEquals('control', preprocess(' ctrl'));
50  assertEquals('control', preprocess('ctrl '));
51  assertEquals('control plus x', preprocess('ctrl+x'));
52  assertEquals('ctrlpt', preprocess('ctrlpt'));
53  assertEquals('Press control plus f while in chrome vox.',
54               preprocess('Press ctrl+f while in ChromeVox.'));
55
56  // Other special-case pronunciation rules.
57  assertEquals('welcome to google plus.',
58               preprocess('welcome to google+.'));
59
60  assertEquals('U P S', preprocess('UPS'));
61
62  assertEquals('UPS does deliver', preprocess('UPS DOES DELIVER'));
63
64  assertEquals('10 equal signs', preprocess('=========='));
65
66  assertEquals('new line', preprocess('\n'));
67  assertEquals('return', preprocess('\r'));
68});
69