summaryrefslogtreecommitdiffstats
path: root/comm/mail/test/browser/quick-filter-bar/browser_toggleBar.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/test/browser/quick-filter-bar/browser_toggleBar.js')
-rw-r--r--comm/mail/test/browser/quick-filter-bar/browser_toggleBar.js117
1 files changed, 117 insertions, 0 deletions
diff --git a/comm/mail/test/browser/quick-filter-bar/browser_toggleBar.js b/comm/mail/test/browser/quick-filter-bar/browser_toggleBar.js
new file mode 100644
index 0000000000..779df5e467
--- /dev/null
+++ b/comm/mail/test/browser/quick-filter-bar/browser_toggleBar.js
@@ -0,0 +1,117 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/*
+ * Test that the message filter bar toggles into and out of existence and
+ * states are updated as appropriate.
+ */
+
+"use strict";
+
+var {
+ assert_messages_in_view,
+ be_in_folder,
+ create_folder,
+ focus_thread_tree,
+ get_about_3pane,
+ make_message_sets_in_folders,
+ mc,
+} = ChromeUtils.import(
+ "resource://testing-common/mozmill/FolderDisplayHelpers.jsm"
+);
+var {
+ assert_constraints_expressed,
+ assert_quick_filter_bar_visible,
+ assert_quick_filter_button_enabled,
+ clear_constraints,
+ toggle_boolean_constraints,
+ toggle_quick_filter_bar,
+ cleanup_qfb_button,
+} = ChromeUtils.import(
+ "resource://testing-common/mozmill/QuickFilterBarHelpers.jsm"
+);
+
+var folder;
+var setUnstarred, setStarred;
+
+add_setup(async function () {
+ folder = await create_folder("QuickFilterBarToggleBar");
+ [setUnstarred, setStarred] = await make_message_sets_in_folders(
+ [folder],
+ [{ count: 1 }, { count: 1 }]
+ );
+ setStarred.setStarred(true);
+
+ registerCleanupFunction(async () => {
+ await ensure_cards_view();
+ });
+});
+
+add_task(async function test_hidden_on_account_central() {
+ await be_in_folder(folder.rootFolder);
+ await assert_quick_filter_button_enabled(false);
+ assert_quick_filter_bar_visible(false);
+ teardownTest();
+});
+
+add_task(async function test_visible_by_default() {
+ await be_in_folder(folder);
+ await ensure_table_view();
+ await assert_quick_filter_button_enabled(true);
+ assert_quick_filter_bar_visible(true);
+ teardownTest();
+});
+
+add_task(async function test_direct_toggle() {
+ assert_quick_filter_bar_visible(true);
+ await toggle_quick_filter_bar();
+ assert_quick_filter_bar_visible(false);
+ await toggle_quick_filter_bar();
+ assert_quick_filter_bar_visible(true);
+ teardownTest();
+});
+
+add_task(async function test_control_shift_k_triggers_display() {
+ // hide it
+ await toggle_quick_filter_bar();
+ assert_quick_filter_bar_visible(false);
+
+ // focus explicitly on the thread pane so we know where the focus is.
+ focus_thread_tree();
+
+ // hit control-shift-k
+ EventUtils.synthesizeKey("k", { accelKey: true, shiftKey: true });
+
+ // now we should be visible again!
+ assert_quick_filter_bar_visible(true);
+ teardownTest();
+});
+
+add_task(async function test_constraints_disappear_when_collapsed() {
+ // set some constraints
+ toggle_boolean_constraints("starred");
+ assert_constraints_expressed({ starred: true });
+ assert_messages_in_view(setStarred);
+
+ // collapse, now we should see them all again!
+ await toggle_quick_filter_bar();
+ assert_messages_in_view([setUnstarred, setStarred]);
+
+ // uncollapse, we should still see them all!
+ await toggle_quick_filter_bar();
+ assert_messages_in_view([setUnstarred, setStarred]);
+
+ // there better be no constraints left!
+ assert_constraints_expressed({});
+ teardownTest();
+});
+
+registerCleanupFunction(async () => {
+ await ensure_cards_view();
+ await cleanup_qfb_button();
+});
+
+function teardownTest() {
+ clear_constraints();
+}