- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / options / language_options_dictionary_download_browsertest.js
1 // Copyright (c) 2012 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 /**
6  * TestFixture for testing messages of dictionary download progress in language
7  * options WebUI.
8  * @extends {testing.Test}
9  * @constructor
10  **/
11 function LanguagesOptionsDictionaryDownloadWebUITest() {}
12
13 LanguagesOptionsDictionaryDownloadWebUITest.prototype = {
14   __proto__: testing.Test.prototype,
15
16   /**
17    * Browse to languages options.
18    **/
19   browsePreload: 'chrome://settings-frame/languages',
20
21   /**
22    * Register a mock dictionary handler.
23    */
24   preLoad: function() {
25     this.makeAndRegisterMockHandler(['retryDictionaryDownload']);
26     this.mockHandler.stubs().retryDictionaryDownload().
27         will(callFunction(function() {
28           options.LanguageOptions.onDictionaryDownloadBegin('en-US');
29         }));
30   },
31 };
32
33 // Verify that dictionary download success shows 'This language is used for
34 // spellchecking' message.
35 TEST_F('LanguagesOptionsDictionaryDownloadWebUITest',
36        'testdictionaryDownloadSuccess',
37        function() {
38   options.LanguageOptions.onDictionaryDownloadSuccess('en-US');
39   expectFalse($('language-options-spell-check-language-message').hidden);
40   expectTrue($('language-options-dictionary-downloading-message').hidden);
41   expectTrue($('language-options-dictionary-download-failed-message').hidden);
42   expectTrue(
43       $('language-options-dictionary-download-fail-help-message').hidden);
44 });
45
46 // Verify that dictionary download in progress shows 'Downloading spell check
47 // language' message.
48 TEST_F('LanguagesOptionsDictionaryDownloadWebUITest',
49        'testdictionaryDownloadProgress',
50        function() {
51   options.LanguageOptions.onDictionaryDownloadBegin('en-US');
52   expectTrue($('language-options-spell-check-language-message').hidden);
53   expectFalse($('language-options-dictionary-downloading-message').hidden);
54   expectTrue($('language-options-dictionary-download-failed-message').hidden);
55   expectTrue(
56       $('language-options-dictionary-download-fail-help-message').hidden);
57 });
58
59 // Verify that failure in dictionary download shows 'Dictionary download failed'
60 // message.
61 TEST_F('LanguagesOptionsDictionaryDownloadWebUITest',
62        'testdictionaryDownloadFailed',
63        function() {
64   // Clear the failure counter:
65   options.LanguageOptions.onDictionaryDownloadSuccess('en-US');
66
67   // First failure shows a short error message.
68   options.LanguageOptions.onDictionaryDownloadFailure('en-US');
69   expectTrue($('language-options-spell-check-language-message').hidden);
70   expectTrue($('language-options-dictionary-downloading-message').hidden);
71   expectFalse($('language-options-dictionary-download-failed-message').hidden);
72   expectTrue(
73       $('language-options-dictionary-download-fail-help-message').hidden);
74
75   // Second and all following failures show a longer error message.
76   options.LanguageOptions.onDictionaryDownloadFailure('en-US');
77   expectTrue($('language-options-spell-check-language-message').hidden);
78   expectTrue($('language-options-dictionary-downloading-message').hidden);
79   expectFalse($('language-options-dictionary-download-failed-message').hidden);
80   expectFalse(
81       $('language-options-dictionary-download-fail-help-message').hidden);
82
83   options.LanguageOptions.onDictionaryDownloadFailure('en-US');
84   expectTrue($('language-options-spell-check-language-message').hidden);
85   expectTrue($('language-options-dictionary-downloading-message').hidden);
86   expectFalse($('language-options-dictionary-download-failed-message').hidden);
87   expectFalse(
88       $('language-options-dictionary-download-fail-help-message').hidden);
89 });
90
91 // Verify that clicking the retry button calls the handler.
92 TEST_F('LanguagesOptionsDictionaryDownloadWebUITest',
93        'testdictionaryDownloadRetry',
94        function() {
95   this.mockHandler.expects(once()).retryDictionaryDownload().
96       will(callFunction(function() {
97         options.LanguageOptions.onDictionaryDownloadBegin('en-US');
98       }));
99   options.LanguageOptions.onDictionaryDownloadFailure('en-US');
100   $('dictionary-download-retry-button').click();
101 });