Index: chrome/test/data/extensions/api_test/input_method/background.js |
diff --git a/chrome/test/data/extensions/api_test/input_method/background.js b/chrome/test/data/extensions/api_test/input_method/background.js |
deleted file mode 100644 |
index ccfc67e14f687515b88846cbc9acbf1c35a67abe..0000000000000000000000000000000000000000 |
--- a/chrome/test/data/extensions/api_test/input_method/background.js |
+++ /dev/null |
@@ -1,199 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-var kNewInputMethodTemplate = '_comp_ime_{EXT_ID}xkb:fr::fra'; |
-var kInitialInputMethodRegex = /_comp_ime_([a-z]{32})xkb:us::eng/; |
-var kInvalidInputMethod = 'xx::xxx'; |
- |
-var testParams = { |
- initialInputMethod: '', |
- newInputMethod: '', |
- dictionaryLoaded: null, |
-}; |
- |
-// The tests needs to be executed in order. |
- |
-function initTests() { |
- console.log('initTest: Getting initial inputMethod'); |
- chrome.inputMethodPrivate.getCurrentInputMethod(function(inputMethod) { |
- testParams.initialInputMethod = inputMethod; |
- |
- var match = inputMethod.match(kInitialInputMethodRegex); |
- chrome.test.assertTrue(!!match); |
- chrome.test.assertEq(2, match.length); |
- var extensionId = match[1]; |
- testParams.newInputMethod = |
- kNewInputMethodTemplate.replace('{EXT_ID}', extensionId); |
- chrome.test.succeed(); |
- }); |
-} |
- |
-function setTest() { |
- chrome.test.assertTrue(!!testParams.newInputMethod); |
- console.log( |
- 'setTest: Changing input method to: ' + testParams.newInputMethod); |
- chrome.inputMethodPrivate.setCurrentInputMethod(testParams.newInputMethod, |
- function() { |
- chrome.test.assertTrue( |
- !chrome.runtime.lastError, |
- chrome.runtime.lastError ? chrome.runtime.lastError.message : ''); |
- chrome.test.succeed(); |
- }); |
-} |
- |
-function getTest() { |
- chrome.test.assertTrue(!!testParams.newInputMethod); |
- console.log('getTest: Getting current input method.'); |
- chrome.inputMethodPrivate.getCurrentInputMethod(function(inputMethod) { |
- chrome.test.assertEq(testParams.newInputMethod, inputMethod); |
- chrome.test.succeed(); |
- }); |
-} |
- |
-function observeTest() { |
- chrome.test.assertTrue(!!testParams.initialInputMethod); |
- console.log('observeTest: Adding input method event listener.'); |
- |
- var listener = function(inputMethod) { |
- chrome.inputMethodPrivate.onChanged.removeListener(listener); |
- chrome.test.assertEq(testParams.initialInputMethod, inputMethod); |
- chrome.test.succeed(); |
- }; |
- chrome.inputMethodPrivate.onChanged.addListener(listener); |
- |
- console.log('observeTest: Changing input method to: ' + |
- testParams.initialInputMethod); |
- chrome.inputMethodPrivate.setCurrentInputMethod( |
- testParams.initialInputMethod); |
-} |
- |
- |
-function setInvalidTest() { |
- console.log( |
- 'setInvalidTest: Changing input method to: ' + kInvalidInputMethod); |
- chrome.inputMethodPrivate.setCurrentInputMethod(kInvalidInputMethod, |
- function() { |
- chrome.test.assertTrue(!!chrome.runtime.lastError); |
- chrome.test.succeed(); |
- }); |
-} |
- |
-function getListTest() { |
- chrome.test.assertTrue(!!testParams.initialInputMethod); |
- chrome.test.assertTrue(!!testParams.newInputMethod); |
- console.log('getListTest: Getting input method list.'); |
- |
- chrome.inputMethodPrivate.getInputMethods(function(inputMethods) { |
- chrome.test.assertEq(6, inputMethods.length); |
- var foundInitialInputMethod = false; |
- var foundNewInputMethod = false; |
- for (var i = 0; i < inputMethods.length; ++i) { |
- if (inputMethods[i].id == testParams.initialInputMethod) |
- foundInitialInputMethod = true; |
- if (inputMethods[i].id == testParams.newInputMethod) |
- foundNewInputMethod = true; |
- } |
- chrome.test.assertTrue(foundInitialInputMethod); |
- chrome.test.assertTrue(foundNewInputMethod); |
- chrome.test.succeed(); |
- }); |
-} |
- |
-// Helper function |
-function getFetchPromise() { |
- return new Promise(function(resolve, reject) { |
- chrome.inputMethodPrivate.fetchAllDictionaryWords(function(words) { |
- if (!!chrome.runtime.lastError) { |
- reject(Error(chrome.runtime.lastError)); |
- } else { |
- resolve(words); |
- } |
- }); |
- }); |
-} |
- |
-// Helper function |
-function getAddPromise(word) { |
- return new Promise(function(resolve, reject) { |
- chrome.inputMethodPrivate.addWordToDictionary(word, function() { |
- if (!!chrome.runtime.lastError) { |
- reject(Error(chrome.runtime.lastError)); |
- } else { |
- resolve(); |
- } |
- }); |
- }); |
-} |
- |
-function loadDictionaryAsyncTest() { |
- testParams.dictionaryLoaded = new Promise(function(resolve, reject) { |
- var message = 'before'; |
- chrome.inputMethodPrivate.onDictionaryLoaded.addListener( |
- function listener() { |
- chrome.inputMethodPrivate.onDictionaryLoaded.removeListener(listener); |
- chrome.test.assertEq(message, 'after'); |
- resolve(); |
- }); |
- message = 'after'; |
- }); |
- // We don't need to wait for the promise to resolve before continuing since |
- // promises are async wrappers. |
- chrome.test.succeed(); |
-} |
- |
-function fetchDictionaryTest() { |
- testParams.dictionaryLoaded |
- .then(function () { |
- return getFetchPromise(); |
- }) |
- .then(function confirmFetch(words) { |
- chrome.test.assertTrue(words !== undefined); |
- chrome.test.assertTrue(words.length === 0); |
- chrome.test.succeed(); |
- }); |
-} |
- |
-function addWordToDictionaryTest() { |
- var wordToAdd = 'helloworld'; |
- testParams.dictionaryLoaded |
- .then(function() { |
- return getAddPromise(wordToAdd); |
- }) |
- // Adding the same word results in an error. |
- .then(function() { |
- return getAddPromise(wordToAdd); |
- }) |
- .catch(function(error) { |
- chrome.test.assertTrue(!!error.message); |
- return getFetchPromise(); |
- }) |
- .then(function(words) { |
- chrome.test.assertTrue(words.length === 1); |
- chrome.test.assertEq(words[0], wordToAdd); |
- chrome.test.succeed(); |
- }); |
-} |
- |
-function dictionaryChangedTest() { |
- var wordToAdd = 'helloworld2'; |
- testParams.dictionaryLoaded |
- .then(function() { |
- chrome.inputMethodPrivate.onDictionaryChanged.addListener( |
- function(added, removed) { |
- chrome.test.assertTrue(added.length === 1); |
- chrome.test.assertTrue(removed.length === 0); |
- chrome.test.assertEq(added[0], wordToAdd); |
- chrome.test.succeed(); |
- }); |
- }) |
- .then(function() { |
- return getAddPromise(wordToAdd); |
- }); |
-} |
- |
-chrome.test.sendMessage('ready'); |
-chrome.test.runTests( |
- [initTests, setTest, getTest, observeTest, setInvalidTest, getListTest, |
- loadDictionaryAsyncTest, fetchDictionaryTest, addWordToDictionaryTest, |
- dictionaryChangedTest]); |