Commit 5531b4a6 authored by chadb's avatar chadb
Browse files

Bug 1745673 - Reader mode save to pocket button toggle. r=niklas,mtigley

parent 245ed3e1
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -311,8 +311,15 @@ var SaveToPocket = {
        break;
      }
      case "Reader:Clicked-pocket-button": {
        let pocketPanel = message.target.ownerDocument.querySelector(
          "#customizationui-widget-panel"
        );
        if (pocketPanel?.getAttribute("panelopen")) {
          pocketPanel.hidePopup();
        } else {
          // Saves the currently viewed page.
          Pocket.savePage(message.target);
        }
        break;
      }
    }
+49 −0
Original line number Diff line number Diff line
@@ -88,3 +88,52 @@ add_task(async function() {
  BrowserTestUtils.removeTab(tab1);
  BrowserTestUtils.removeTab(tab2);
});

/**
 * Test that the pocket button toggles the pocket popup successfully
 */
add_task(async function() {
  await SpecialPowers.pushPrefEnv({
    set: [["reader.improvements_H12022.enabled", true]],
  });
  await BrowserTestUtils.withNewTab(
    TEST_PATH + "readerModeArticleShort.html",
    async function(browser) {
      let pageShownPromise = BrowserTestUtils.waitForContentEvent(
        browser,
        "AboutReaderContentReady"
      );
      let readerButton = document.getElementById("reader-mode-button");
      readerButton.click();
      await pageShownPromise;

      await SpecialPowers.spawn(browser, [], async function() {
        content.document.querySelector(".pocket-button").click();
      });
      let panel = gBrowser.selectedBrowser.ownerDocument.querySelector(
        "#customizationui-widget-panel"
      );
      await BrowserTestUtils.waitForMutationCondition(
        panel,
        { attributes: true },
        () => {
          return BrowserTestUtils.is_visible(panel);
        }
      );
      ok(BrowserTestUtils.is_visible(panel), "Panel buttons are visible");

      await SpecialPowers.spawn(browser, [], async function() {
        content.document.querySelector(".pocket-button").click();
      });
      await BrowserTestUtils.waitForMutationCondition(
        panel,
        { attributes: true },
        () => {
          return BrowserTestUtils.is_hidden(panel);
        }
      );

      ok(BrowserTestUtils.is_hidden(panel), "Panel buttons are hidden");
    }
  );
});