var common = require("../casper_lib/common.js"); function star_count() { return casper.evaluate(function () { return $("#zhome .fa-star:not(.empty-star)").length; }); } function toggle_test_star_message() { var error = casper.evaluate(function () { var msg = $('.message_content:contains("test star"):visible').last(); if (msg.length !== 1) { return "cannot find test star message"; } var star_icon = msg .closest(".messagebox") .find(".star"); if (star_icon.length !== 1) { return "cannot find star icon"; } star_icon.click(); }); if (error) { casper.test.info("\n\nERROR: " + error); } casper.test.assert(!error); } common.start_and_log_in(); casper.then(function () { casper.test.info("Sending test message"); }); common.then_send_message("stream", { stream: "Verona", subject: "stars", content: "test star", }); casper.then(function () { common.wait_for_text("#zhome .message_row", "test star"); }); casper.then(function () { casper.test.info("Checking star counts"); // Initially, no messages are starred. casper.test.assertEquals(star_count(), 0, "Got expected empty star count."); // Clicking on a message star stars it. toggle_test_star_message(); }); casper.then(function () { casper.waitUntilVisible("#zhome .fa-star", function () { casper.test.assertEquals(star_count(), 1, "Got expected single star count."); casper.click('a[href^="#narrow/is/starred"]'); }); }); casper.waitUntilVisible("#zfilt", function () { // You can narrow to your starred messages. common.expected_messages("zfilt", ["Verona > stars"], ["
test star
"]); common.un_narrow(); }); casper.then(function () { // Clicking on a starred message unstars it. toggle_test_star_message(); casper.test.assertEquals(star_count(), 0, "Got expected re-empty star count."); }); common.then_log_out(); casper.run(function () { casper.test.done(); });