|
7 | 7 | newProgrammaticE2EPage,
|
8 | 8 | toBeNumber,
|
9 | 9 | toBeInteger,
|
| 10 | + getElementRect, |
10 | 11 | } from "../../tests/utils";
|
11 | 12 | import { html } from "../../../support/formatting";
|
12 | 13 | import { CSS, DEFAULT_COLOR, DEFAULT_STORAGE_KEY_PREFIX, DIMENSIONS, SCOPE_SIZE } from "./resources";
|
@@ -807,6 +808,34 @@ describe("calcite-color-picker", () => {
|
807 | 808 | expect(hueScopeCenterX).toBe(hueSliderX + sliderWidth - DIMENSIONS.m.thumb.radius);
|
808 | 809 | });
|
809 | 810 |
|
| 811 | + it("does not allow text selection when color field/sliders are used", async () => { |
| 812 | + const page = await newE2EPage(); |
| 813 | + await page.setContent(`<calcite-color-picker alpha-channel></calcite-color-picker>`); |
| 814 | + const { x: hueSliderX, y: hueSliderY } = await getElementRect(page, "calcite-color-picker", `.${CSS.hueSlider}`); |
| 815 | + const { x: opacitySliderX, y: opacitySliderY } = await getElementRect( |
| 816 | + page, |
| 817 | + "calcite-color-picker", |
| 818 | + `.${CSS.opacitySlider}`, |
| 819 | + ); |
| 820 | + const { x: colorFieldX, y: colorFieldY } = await getElementRect(page, "calcite-color-picker", `.${CSS.colorField}`); |
| 821 | + |
| 822 | + const dragStartPoints = [ |
| 823 | + [colorFieldX, colorFieldY], |
| 824 | + [hueSliderX, hueSliderY], |
| 825 | + [opacitySliderX, opacitySliderY], |
| 826 | + ]; |
| 827 | + |
| 828 | + for (const [startingX, startingY] of dragStartPoints) { |
| 829 | + await page.mouse.move(startingX, startingY); |
| 830 | + await page.mouse.down(); |
| 831 | + await page.mouse.move(1000, 1000); |
| 832 | + await page.mouse.up(); |
| 833 | + await page.waitForChanges(); |
| 834 | + |
| 835 | + expect(await page.evaluate(() => window.getSelection().type)).toBe("None"); |
| 836 | + } |
| 837 | + }); |
| 838 | + |
810 | 839 | describe("unsupported value handling", () => {
|
811 | 840 | let page: E2EPage;
|
812 | 841 |
|
|
0 commit comments