command_store_test.unitjs 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_unittest_base.js']);
7
8/**
9 * Test fixture.
10 * @constructor
11 * @extends {ChromeVoxUnitTestBase}
12 */
13function CvoxCommandStoreUnitTest() {}
14
15CvoxCommandStoreUnitTest.prototype = {
16  __proto__: ChromeVoxUnitTestBase.prototype,
17
18  /** @override */
19  closureModuleDeps: [
20    'cvox.ChromeVoxUserCommands',
21    'cvox.CommandStore',
22  ]
23};
24
25TEST_F('CvoxCommandStoreUnitTest', 'TableData', function() {
26  var categories = cvox.CommandStore.categories();
27  assertEquals(10, categories.length);
28  assertEquals('modifier_keys', categories[0]);
29  assertEquals('controlling_speech', categories[1]);
30  assertEquals('navigation', categories[2]);
31  assertEquals('information', categories[3]);
32  assertEquals('help_commands', categories[4]);
33  assertEquals('overview', categories[5]);
34  assertEquals('jump_commands', categories[6]);
35  assertEquals('tables', categories[7]);
36
37  assertEquals('stop_speech_key',
38               cvox.CommandStore.messageForCommand('stopSpeech'));
39  assertEquals('controlling_speech',
40               cvox.CommandStore.categoryForCommand('stopSpeech'));
41
42  var controllingSpeechCmds =
43      cvox.CommandStore.commandsForCategory('controlling_speech');
44  assertEquals(11, controllingSpeechCmds.length);
45  assertEquals('stopSpeech', controllingSpeechCmds[0]);
46  assertEquals('toggleChromeVox', controllingSpeechCmds[1]);
47  assertEquals('decreaseTtsRate', controllingSpeechCmds[2]);
48  assertEquals('increaseTtsRate', controllingSpeechCmds[3]);
49  assertEquals('decreaseTtsPitch', controllingSpeechCmds[4]);
50  assertEquals('increaseTtsPitch', controllingSpeechCmds[5]);
51});
52
53
54/** Tests that undefined is returned for bad queries. */
55TEST_F('CvoxCommandStoreUnitTest', 'InvalidQueries', function() {
56  assertThat(cvox.CommandStore.commandsForCategory('foo'), eqJSON([]));
57  assertTrue(undefined == cvox.CommandStore.categoryForCommand('foo'));
58  assertTrue(undefined == cvox.CommandStore.messageForCommand('foo'));
59});
60
61
62/** Tests the validity of every command. */
63TEST_F('CvoxCommandStoreUnitTest', 'CommandValidity', function() {
64  var categories = cvox.CommandStore.categories();
65  for (var i = 0; i < categories.length; i++) {
66    var commands = cvox.CommandStore.commandsForCategory(categories[i]);
67    for (j = 0; j < commands.length; j++) {
68      var command = commands[j];
69      assertEquals(command + ' function',
70          command + ' ' + typeof(cvox.ChromeVoxUserCommands.commands[command]));
71    }
72  }
73});
74