mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 21:43:21 +00:00
ES and TypeScript modules are strict by default and don’t need this directive. ESLint will remind us to add it to new CommonJS files and remove it from ES and TypeScript modules. Signed-off-by: Anders Kaseorg <anders@zulip.com>
133 lines
4.1 KiB
JavaScript
133 lines
4.1 KiB
JavaScript
"use strict";
|
|
|
|
var common = require("../casper_lib/common.js");
|
|
|
|
// Test basic tab navigation.
|
|
|
|
common.start_and_log_in();
|
|
|
|
casper.then(function () {
|
|
casper.test.info("Testing navigation");
|
|
});
|
|
|
|
function wait_for_tab(tab) {
|
|
casper.waitForSelector("#" + tab + ".tab-pane.active", function () {
|
|
casper.test.assertExists("#" + tab + ".tab-pane.active", tab + " page is active");
|
|
});
|
|
}
|
|
|
|
function then_navigate_to(click_target, tab) {
|
|
casper.then(function () {
|
|
casper.test.info("Visiting #" + click_target);
|
|
casper.click("a[href='#" + click_target + "']");
|
|
wait_for_tab(tab);
|
|
});
|
|
}
|
|
|
|
function then_navigate_to_settings() {
|
|
casper.then(function () {
|
|
casper.test.info("Navigate to settings");
|
|
var menu_selector = "#settings-dropdown";
|
|
casper.waitUntilVisible(menu_selector, function () {
|
|
casper.click(menu_selector);
|
|
casper.waitUntilVisible('a[href^="#settings"]', function () {
|
|
casper.click('a[href^="#settings"]');
|
|
casper.waitUntilVisible("#settings_page", function () {
|
|
casper.test.assertExists("#settings_page", "Settings page is active");
|
|
casper.click("#settings_page .exit");
|
|
});
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
function then_navigate_to_subscriptions() {
|
|
casper.then(function () {
|
|
casper.test.info("Navigate to subscriptions");
|
|
|
|
var menu_selector = "#settings-dropdown";
|
|
casper.waitUntilVisible(menu_selector, function () {
|
|
casper.click(menu_selector);
|
|
casper.click('a[href^="#streams"]');
|
|
casper.waitUntilVisible("#subscription_overlay", function () {
|
|
casper.test.assertExists("#subscriptions_table", "#subscriptions page is active");
|
|
casper.click("#subscription_overlay .exit");
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
// Take a navigation tour of the app.
|
|
// Entries are (click target, tab that should be active after clicking).
|
|
then_navigate_to_settings();
|
|
|
|
var verona_narrow;
|
|
casper.then(function () {
|
|
var verona_id = casper.evaluate(function () {
|
|
return stream_data.get_stream_id("Verona");
|
|
});
|
|
verona_narrow = "narrow/stream/" + verona_id + "-Verona";
|
|
casper.test.info(verona_narrow);
|
|
|
|
then_navigate_to(verona_narrow, "message_feed_container");
|
|
then_navigate_to("message_feed_container", "message_feed_container");
|
|
then_navigate_to_subscriptions();
|
|
then_navigate_to("", "message_feed_container");
|
|
then_navigate_to_settings();
|
|
then_navigate_to("narrow/is/private", "message_feed_container");
|
|
then_navigate_to_subscriptions();
|
|
then_navigate_to(verona_narrow, "message_feed_container");
|
|
});
|
|
|
|
var initial_page_load_time;
|
|
var hash;
|
|
var orig_hash;
|
|
|
|
// Verify reload.js's server-initiated browser reload hash
|
|
// save/restore logic works.
|
|
casper.then(function () {
|
|
initial_page_load_time = casper.evaluate(function () {
|
|
return page_params.page_load_time;
|
|
});
|
|
casper.test.info(initial_page_load_time);
|
|
orig_hash = casper.evaluate(function () {
|
|
return window.location.hash;
|
|
});
|
|
casper.evaluate(function () {
|
|
reload.initiate({immediate: true});
|
|
});
|
|
});
|
|
|
|
casper.then(function () {
|
|
// Confirm that's we've actually reloaded using the page load timestamp.
|
|
casper.waitFor(
|
|
function () {
|
|
return casper.evaluate(function (input) {
|
|
return page_params.page_load_time > input;
|
|
}, initial_page_load_time);
|
|
},
|
|
function () {
|
|
// Verify the hash was preserved
|
|
hash = casper.evaluate(function () {
|
|
return window.location.hash;
|
|
});
|
|
}
|
|
);
|
|
});
|
|
|
|
casper.then(function () {
|
|
casper.waitUntilVisible("#zfilt", function () {
|
|
// Verify that we're narrowed to the target stream
|
|
casper.test.assertEquals(orig_hash, hash);
|
|
casper.test.assertVisible("#zfilt");
|
|
casper.test.assertNotVisible("#zhome");
|
|
});
|
|
});
|
|
|
|
common.then_log_out();
|
|
|
|
// Run the above queued actions.
|
|
casper.run(function () {
|
|
casper.test.done();
|
|
});
|