Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / downloads_ui_browsertest.js
index 4eb5bc1..b4b724c 100644 (file)
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+GEN_INCLUDE(['downloads_ui_browsertest_base.js']);
 GEN('#include "chrome/browser/ui/webui/downloads_ui_browsertest.h"');
 
-/** @const */ var TOTAL_RESULT_COUNT = 25;
+// Test UI when removing entries is allowed.
+TEST_F('BaseDownloadsWebUITest', 'DeleteAllowed', function() {
+  this.testHelper(true, false);
+  // TODO(pamg): Mock out the back-end calls, so we can also test removing a
+  // single item.
+  testDone();
+});
 
-/**
- * Test C++ fixture for downloads WebUI testing.
- * @constructor
- * @extends {testing.Test}
- */
-function DownloadsUIBrowserTest() {}
+TEST_F('BaseDownloadsWebUITest', 'NoResultsHiddenWhenDownloads', function() {
+  assertNotEquals(0, downloads.size());
+  expectFalse($('downloads-display').hidden);
+  expectTrue($('no-downloads-or-results').hidden);
+});
 
 /**
- * Base fixture for Downloads WebUI testing.
- * @extends {testing.Test}
  * @constructor
+ * @extends {BaseDownloadsWebUITest}
  */
-function BaseDownloadsWebUITest() {}
-
-BaseDownloadsWebUITest.prototype = {
-  __proto__: testing.Test.prototype,
-
-  /**
-   * Browse to the downloads page & call our preLoad().
-   */
-  browsePreload: 'chrome://downloads/',
+function EmptyDownloadsWebUITest() {}
 
-  /** @override */
-  typedefCppFixture: 'DownloadsUIBrowserTest',
-
-  /** @override */
-  testGenPreamble: function() {
-    GEN('  SetDeleteAllowed(true);');
-  },
-
-  /** @override */
-  runAccessibilityChecks: true,
+EmptyDownloadsWebUITest.prototype = {
+  __proto__: BaseDownloadsWebUITest.prototype,
 
   /** @override */
-  accessibilityIssuesAreErrors: true,
-
-  /**
-   * Sends TOTAL_RESULT_COUNT fake downloads to the page. This can't be called
-   * in the preLoad, because it requires the global Download object to have
-   * been created by the page.
-   * @override
-   */
   setUp: function() {
-    // The entries will begin at 1:00 AM on Sept 2, 2008, and will be spaced
-    // two minutes apart.
-    var timestamp = new Date(2008, 9, 2, 1, 0).getTime();
-    for (var i = 0; i < TOTAL_RESULT_COUNT; ++i) {
-      downloads.updated(this.createDownload_(i, timestamp));
-      timestamp += 2 * 60 * 1000;  // Next visit is two minutes later.
-    }
-    expectEquals(downloads.size(), TOTAL_RESULT_COUNT);
-  },
-
-  /**
-   * Creates a download object to be passed to the page, following the expected
-   * backend format (see downloads_dom_handler.cc).
-   * @param {number} A unique ID for the download.
-   * @param {number} The time the download purportedly started.
-   * @return {!Object} A fake download object.
-   * @private
-   */
-  createDownload_: function(id, timestamp) {
-    return {
-      id: id,
-      started: timestamp,
-      otr: false,
-      state: Download.States.COMPLETE,
-      retry: false,
-      file_path: '/path/to/file',
-      file_url: 'http://google.com/' + timestamp,
-      file_name: 'download_' + timestamp,
-      url: 'http://google.com/' + timestamp,
-      file_externally_removed: false,
-      danger_type: Download.DangerType.NOT_DANGEROUS,
-      last_reason_text: '',
-      since_string: 'today',
-      date_string: 'today',
-      percent: 100,
-      progress_status_text: 'done',
-      received: 128,
-    };
-  },
-
-  /**
-   * Asserts the correctness of the state of the UI elements
-   * that delete the download history.
-   * @param {boolean} allowDelete True if download history deletion is
-   *     allowed and false otherwise.
-   * @param {boolean} expectControlsHidden True if the controls to delete
-   *     download history are expected to be hidden and false otherwise.
-   */
-  testHelper: function(allowDelete, expectControlsHidden) {
-    var clearAllElements = document.getElementsByClassName('clear-all-link');
-    var disabledElements = document.getElementsByClassName('disabled-link');
-    var removeLinkElements =
-        document.getElementsByClassName('control-remove-link');
-
-    // "Clear all" should be a link only when deletions are allowed.
-    expectEquals(allowDelete ? 1 : 0, clearAllElements.length);
-
-    // There should be no disabled links when deletions are allowed.
-    // On the other hand, when deletions are not allowed, "Clear All"
-    // and all "Remove from list" links should be disabled.
-    expectEquals(allowDelete ? 0 : TOTAL_RESULT_COUNT + 1,
-        disabledElements.length);
-
-    // All "Remove from list" items should be links when deletions are allowed.
-    // On the other hand, when deletions are not allowed, all
-    // "Remove from list" items should be text.
-    expectEquals(allowDelete ? TOTAL_RESULT_COUNT : 0,
-        removeLinkElements.length);
-
-    if (allowDelete) {
-      // "Clear all" should not be hidden.
-      expectFalse(clearAllElements[0].hidden);
-
-      // No "Remove from list" items should be hidden.
-      expectFalse(removeLinkElements[0].hidden);
-    } else {
-      expectEquals(expectControlsHidden, disabledElements[0].hidden);
-    }
-
-    // The model is updated synchronously, even though the actual
-    // back-end removal (tested elsewhere) is asynchronous.
-    clearAll();
-    expectEquals(allowDelete ? 0 : TOTAL_RESULT_COUNT, downloads.size());
+    // Doesn't create any fake downloads.
+    assertEquals(0, downloads.size());
   },
 };
 
-// Test UI when removing entries is allowed.
-TEST_F('BaseDownloadsWebUITest', 'DeleteAllowed', function() {
-  this.testHelper(true, false);
-  // TODO(pamg): Mock out the back-end calls, so we can also test removing a
-  // single item.
-  testDone();
-});
-
-// Test that clicking <a href=#> doesn't actually go to #.
-TEST_F('BaseDownloadsWebUITest', 'PoundLinkClicksDontChangeUrl', function() {
-  assertEquals(this.browsePreload, document.location.href);
-  document.querySelector('.clear-all-link').click();
-  assertEquals(this.browsePreload, document.location.href);
-  testDone();
+TEST_F('EmptyDownloadsWebUITest', 'NoDownloadsMessageShowing', function() {
+  expectTrue($('downloads-display').hidden);
+  expectFalse($('no-downloads-or-results').hidden);
 });
 
 /**
@@ -174,24 +63,3 @@ TEST_F('DownloadsWebUIDeleteProhibitedTest', 'DeleteProhibited', function() {
   // single item.
   testDone();
 });
-
-/**
- * Fixture for Downloads WebUI testing for a supervised user.
- * @extends {BaseDownloadsWebUITest}
- * @constructor
- */
-function DownloadsWebUIForSupervisedUsersTest() {}
-
-DownloadsWebUIForSupervisedUsersTest.prototype = {
-  __proto__: BaseDownloadsWebUITest.prototype,
-
-  /** @override */
-  typedefCppFixture: 'DownloadsWebUIForSupervisedUsersTest',
-};
-
-// Test UI for supervised users, removing entries should be disabled
-// and removal controls should be hidden.
-TEST_F('DownloadsWebUIForSupervisedUsersTest', 'SupervisedUsers', function() {
-  this.testHelper(false, true);
-  testDone();
-});