From 29a2ef75218555e0bfd4072d48f6827850eeabec Mon Sep 17 00:00:00 2001 From: OlgaLarina Date: Fri, 2 Aug 2024 10:20:02 +0300 Subject: [PATCH] Preview tab: Show overlay popup on selected mobile devices. (#5742) * resolve #5700 Preview tab: Show overlay popup on selected mobile devices. * #5700 Preview tab: Show overlay popup on selected mobile devices: update test * work #5700 Preview tab: Show overlay popup on selected mobile devices. --------- Co-authored-by: OlgaLarina --- .../src/components/simulator.scss | 4 ++ .../src/components/simulator.ts | 12 +++- testCafe/preview/simulator.ts | 60 ++++++++++++++++++ .../test-tab-opened-dropdown-mobile.png | Bin 8730 -> 7743 bytes .../etalons/test-tab-opened-dropdown.png | Bin 8536 -> 15522 bytes .../tests/designer/test-tab.ts | 17 +++-- 6 files changed, 83 insertions(+), 10 deletions(-) create mode 100644 testCafe/preview/simulator.ts diff --git a/packages/survey-creator-core/src/components/simulator.scss b/packages/survey-creator-core/src/components/simulator.scss index 82fc58cb98..5ac69322a7 100644 --- a/packages/survey-creator-core/src/components/simulator.scss +++ b/packages/survey-creator-core/src/components/simulator.scss @@ -71,4 +71,8 @@ .svd-simulator-content { overflow-y: scroll; } +} + +.svd-simulator .sv-popup--overlay { + --sv-popup-overlay-height: 100%;; } \ No newline at end of file diff --git a/packages/survey-creator-core/src/components/simulator.ts b/packages/survey-creator-core/src/components/simulator.ts index 7157411046..d41885adba 100644 --- a/packages/survey-creator-core/src/components/simulator.ts +++ b/packages/survey-creator-core/src/components/simulator.ts @@ -3,6 +3,14 @@ import { Base, CssClassBuilder, property, SurveyModel } from "survey-core"; require("./simulator.scss"); export class SurveySimulatorModel extends Base { + private surveyChanged() { + const _this = this; + this.survey.onOpenDropdownMenu.add((_, options) => { + const device = simulatorDevices[_this.activeDevice]; + options.menuType = device.deviceType === "desktop" ? "dropdown" : (device.deviceType == "tablet" ? "popup" : "overlay"); + }); + } + constructor() { super(); // if (!!_toolbarHolder) { @@ -37,7 +45,9 @@ export class SurveySimulatorModel extends Base { } @property({ defaultValue: true }) landscape: boolean; - @property() survey: SurveyModel; + @property({ + onSet: (newVal: SurveyModel, target: SurveySimulatorModel) => { target.surveyChanged(); } + }) survey: SurveyModel; @property({ defaultValue: "desktop" }) device: string; @property({ defaultValue: "l" }) orientation: string; @property({ defaultValue: true }) considerDPI: boolean; diff --git a/testCafe/preview/simulator.ts b/testCafe/preview/simulator.ts new file mode 100644 index 0000000000..3abd623990 --- /dev/null +++ b/testCafe/preview/simulator.ts @@ -0,0 +1,60 @@ +import { url, getTabbedMenuItemByText, setJSON, creatorTabPreviewName, getBarItemByTitle, getListItemByText } from "../helper"; +import { Selector } from "testcafe"; +const title = "Preview tab simulator"; + +fixture`${title}`.page`${url}`.beforeEach( + async (t) => { + await t.maximizeWindow(); + } +); + +test("Simulator popups", async (t) => { + await setJSON({ + "pages": [ + { + "name": "page1", + "elements": [ + { + "type": "dropdown", + "name": "question1", + "choices": [ + "Item 1", + "Item 2", + "Item 3" + ] + } + ] + } + ] + }); + + const dropdownSelect = Selector(".sd-dropdown"); + const dropdownPopup = Selector(".svd-simulator-content .sv-popup"); + const dropdownPopupContainer = dropdownPopup.find(".sv-popup__container"); + const tabletPopup = "sv-popup--tablet"; + const overlayPopup = "sv-popup--dropdown-overlay"; + + await t + .click(getTabbedMenuItemByText(creatorTabPreviewName)) + .expect(dropdownPopupContainer.visible).notOk() + + .click(dropdownSelect) + .expect(dropdownPopupContainer.visible).ok() + .expect(dropdownPopup.classNames).notContains(overlayPopup) + .expect(dropdownPopup.classNames).notContains(tabletPopup) + + .click(getBarItemByTitle("Select device type")) + .click(getListItemByText("iPad Air")) + + .click(dropdownSelect) + .expect(dropdownPopupContainer.visible).ok() + .expect(dropdownPopup.classNames).contains(overlayPopup) + .expect(dropdownPopup.classNames).contains(tabletPopup) + + .click(getBarItemByTitle("Select device type")) + .click(getListItemByText("iPhone 15")) + .click(dropdownSelect) + .expect(dropdownPopupContainer.visible).ok() + .expect(dropdownPopup.classNames).contains(overlayPopup) + .expect(dropdownPopup.classNames).notContains(tabletPopup); +}); diff --git a/visualRegressionTests/tests/designer/etalons/test-tab-opened-dropdown-mobile.png b/visualRegressionTests/tests/designer/etalons/test-tab-opened-dropdown-mobile.png index ffef94e4bf1c838b8231ea4db39de2113f25ba3c..20c817632399936cf23cdd017fe0da5e22123b69 100644 GIT binary patch literal 7743 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 diff --git a/visualRegressionTests/tests/designer/test-tab.ts b/visualRegressionTests/tests/designer/test-tab.ts index f25ad995a0..6b31a11327 100644 --- a/visualRegressionTests/tests/designer/test-tab.ts +++ b/visualRegressionTests/tests/designer/test-tab.ts @@ -1,5 +1,5 @@ import { ClientFunction, Selector } from "testcafe"; -import { url, setJSON, getTabbedMenuItemByText, takeElementScreenshot, creatorTabPreviewName, explicitErrorHandler, urlPreviewThemeSwitcher, wrapVisualTest, getListItemByText, resetHoverToCreator } from "../../helper"; +import { url, setJSON, getTabbedMenuItemByText, takeElementScreenshot, creatorTabPreviewName, explicitErrorHandler, urlPreviewThemeSwitcher, wrapVisualTest, getListItemByText, resetHoverToCreator, getBarItemByTitle } from "../../helper"; const title = "Test tab Screenshot"; @@ -328,7 +328,7 @@ test("empty survey", async (t) => { test("dropdown popup in simulator", async (t) => { await wrapVisualTest(t, async (t, comparer) => { const simulator = Selector(".svd-simulator-content"); - await t.resizeWindow(1800, 600); + await t.resizeWindow(1200, 1000); await setJSON({ "logoPosition": "right", "pages": [ @@ -357,8 +357,7 @@ test("dropdown popup in simulator", async (t) => { }); await t.click(getTabbedMenuItemByText(creatorTabPreviewName)); - await t.click(Selector('[title="Select device type"]')); - await t.click(Selector("span").withText("iPhone SE")); + await t.resizeWindow(800, 800); await t.click(Selector('[data-name="nps-score"]')); await t.click(Selector("li.sv-list__item.sd-list__item span").withText("2")); await t.click(Selector('[data-name="nps-score"]')); @@ -368,11 +367,8 @@ test("dropdown popup in simulator", async (t) => { test("dropdown popup in simulator - mobile", async (t) => { await wrapVisualTest(t, async (t, comparer) => { - await ClientFunction(() => { - window["Survey"]._setIsTouch(true); - })(); const simulator = Selector(".svd-simulator-content"); - await t.resizeWindow(400, 600); + await t.resizeWindow(1200, 1000); await setJSON({ "logoPosition": "right", "pages": [ @@ -399,7 +395,10 @@ test("dropdown popup in simulator - mobile", async (t) => { } ] }); - await t.click(Selector('[title="Preview"]')); + await t.click(getTabbedMenuItemByText(creatorTabPreviewName)); + await t.click(Selector('[title="Select device type"]')); + await t.click(Selector("span").withText("iPhone SE")); + await t.click(getBarItemByTitle("Switch to portrait orientation")); await t.click(Selector('[data-name="nps-score"]')); await takeElementScreenshot("test-tab-opened-dropdown-mobile.png", simulator, t, comparer); });