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