Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
const NOT_ENOUGH_REVIEWS_TEST_URL =
const NOT_SUPPORTED_TEST_URL = "https://example.com/Bad-Product/dp/PAG3N0TSUP";
const UNPROCESSABLE_TEST_URL = "https://example.com/Bad-Product/dp/UNPR0C3SSA";
add_task(async function test_sidebar_error() {
// Disable OHTTP for now to get this landed; we'll re-enable with proper
// mocking in the near future.
await SpecialPowers.pushPrefEnv({
set: [
["toolkit.shopping.ohttpRelayURL", ""],
["toolkit.shopping.ohttpConfigURL", ""],
],
});
await BrowserTestUtils.withNewTab(BAD_PRODUCT_TEST_URL, async browser => {
let sidebar = gBrowser.getPanel(browser).querySelector("shopping-sidebar");
Assert.ok(sidebar, "Sidebar should exist");
Assert.ok(
BrowserTestUtils.isVisible(sidebar),
"Sidebar should be visible."
);
info("Waiting for sidebar to update.");
await promiseSidebarUpdated(sidebar, BAD_PRODUCT_TEST_URL);
info("Verifying a generic error is shown.");
await SpecialPowers.spawn(
sidebar.querySelector("browser"),
[],
async () => {
let doc = content.document;
let shoppingContainer =
doc.querySelector("shopping-container").wrappedJSObject;
ok(
shoppingContainer.shoppingMessageBarEl,
"Got shopping-message-bar element"
);
is(
shoppingContainer.shoppingMessageBarEl.getAttribute("type"),
"generic-error",
"generic-error type should be correct"
);
}
);
});
});
add_task(async function test_sidebar_analysis_status_page_not_supported() {
// Disable OHTTP for now to get this landed; we'll re-enable with proper
// mocking in the near future.
await SpecialPowers.pushPrefEnv({
set: [
["toolkit.shopping.ohttpRelayURL", ""],
["toolkit.shopping.ohttpConfigURL", ""],
],
});
// Product not supported status
await BrowserTestUtils.withNewTab(NOT_SUPPORTED_TEST_URL, async browser => {
let sidebar = gBrowser.getPanel(browser).querySelector("shopping-sidebar");
Assert.ok(sidebar, "Sidebar should exist");
Assert.ok(
BrowserTestUtils.isVisible(sidebar),
"Sidebar should be visible."
);
info("Waiting for sidebar to update.");
await promiseSidebarUpdated(sidebar, NOT_SUPPORTED_TEST_URL);
info("Verifying a generic error is shown.");
await SpecialPowers.spawn(
sidebar.querySelector("browser"),
[],
async () => {
let doc = content.document;
let shoppingContainer =
doc.querySelector("shopping-container").wrappedJSObject;
ok(
shoppingContainer.shoppingMessageBarEl,
"Got shopping-message-bar element"
);
is(
shoppingContainer.shoppingMessageBarEl.getAttribute("type"),
"page-not-supported",
"message type should be correct"
);
}
);
});
});
add_task(async function test_sidebar_analysis_status_unprocessable() {
// Disable OHTTP for now to get this landed; we'll re-enable with proper
// mocking in the near future.
await SpecialPowers.pushPrefEnv({
set: [
["toolkit.shopping.ohttpRelayURL", ""],
["toolkit.shopping.ohttpConfigURL", ""],
],
});
// Unprocessable status
await BrowserTestUtils.withNewTab(UNPROCESSABLE_TEST_URL, async browser => {
let sidebar = gBrowser.getPanel(browser).querySelector("shopping-sidebar");
Assert.ok(sidebar, "Sidebar should exist");
Assert.ok(
BrowserTestUtils.isVisible(sidebar),
"Sidebar should be visible."
);
info("Waiting for sidebar to update.");
await promiseSidebarUpdated(sidebar, UNPROCESSABLE_TEST_URL);
info("Verifying a generic error is shown.");
await SpecialPowers.spawn(
sidebar.querySelector("browser"),
[],
async () => {
let doc = content.document;
let shoppingContainer =
doc.querySelector("shopping-container").wrappedJSObject;
ok(
shoppingContainer.shoppingMessageBarEl,
"Got shopping-message-bar element"
);
is(
shoppingContainer.shoppingMessageBarEl.getAttribute("type"),
"generic-error",
"message type should be correct"
);
}
);
});
});
add_task(async function test_sidebar_analysis_status_not_enough_reviews() {
// Disable OHTTP for now to get this landed; we'll re-enable with proper
// mocking in the near future.
await SpecialPowers.pushPrefEnv({
set: [
["toolkit.shopping.ohttpRelayURL", ""],
["toolkit.shopping.ohttpConfigURL", ""],
],
});
// Not enough reviews status
await BrowserTestUtils.withNewTab(
NOT_ENOUGH_REVIEWS_TEST_URL,
async browser => {
let sidebar = gBrowser
.getPanel(browser)
.querySelector("shopping-sidebar");
Assert.ok(sidebar, "Sidebar should exist");
Assert.ok(
BrowserTestUtils.isVisible(sidebar),
"Sidebar should be visible."
);
info("Waiting for sidebar to update.");
await promiseSidebarUpdated(sidebar, NOT_ENOUGH_REVIEWS_TEST_URL);
info("Verifying a generic error is shown.");
await SpecialPowers.spawn(
sidebar.querySelector("browser"),
[],
async () => {
let doc = content.document;
let shoppingContainer =
doc.querySelector("shopping-container").wrappedJSObject;
ok(
shoppingContainer.shoppingMessageBarEl,
"Got shopping-message-bar element"
);
is(
shoppingContainer.shoppingMessageBarEl.getAttribute("type"),
"not-enough-reviews",
"message type should be correct"
);
}
);
}
);
});