From f50e8b2514b64db5dde2adb135e43711447c083b Mon Sep 17 00:00:00 2001 From: amit3200 Date: Thu, 6 Jul 2023 17:19:27 +0530 Subject: [PATCH] Adding Dpr fixes --- .../src/metadata/desktopMetaData.js | 2 +- .../src/metadata/mobileMetaData.js | 6 ++++++ .../test/metadata/desktopMetaData.test.js | 2 +- .../test/metadata/mobileMetaData.test.js | 15 +++++++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/webdriver-utils/src/metadata/desktopMetaData.js b/packages/webdriver-utils/src/metadata/desktopMetaData.js index 83989cfe6..234309a7b 100644 --- a/packages/webdriver-utils/src/metadata/desktopMetaData.js +++ b/packages/webdriver-utils/src/metadata/desktopMetaData.js @@ -42,7 +42,7 @@ export default class DesktopMetaData { } async screenResolution() { - const data = await this.driver.executeScript({ script: 'return [window.screen.width.toString(), window.screen.height.toString()];', args: [] }); + const data = await this.driver.executeScript({ script: 'return [(window.screen.width * window.devicePixelRatio).toString(), (window.screen.height * window.devicePixelRatio).toString()];', args: [] }); const screenInfo = data.value; return `${screenInfo[0]} x ${screenInfo[1]}`; } diff --git a/packages/webdriver-utils/src/metadata/mobileMetaData.js b/packages/webdriver-utils/src/metadata/mobileMetaData.js index 95e90009a..e00b6e4ea 100644 --- a/packages/webdriver-utils/src/metadata/mobileMetaData.js +++ b/packages/webdriver-utils/src/metadata/mobileMetaData.js @@ -43,6 +43,12 @@ export default class MobileMetaData { return { width, height }; } + async screenResolution() { + const data = await this.driver.executeScript({ script: 'return [(window.screen.width * window.devicePixelRatio).toString(), (window.screen.height * window.devicePixelRatio).toString()];', args: [] }); + const screenInfo = data.value; + return `${screenInfo[0]} x ${screenInfo[1]}`; + } + async devicePixelRatio() { const devicePixelRatio = await this.driver.executeScript({ script: 'return window.devicePixelRatio;', args: [] }); return devicePixelRatio.value; diff --git a/packages/webdriver-utils/test/metadata/desktopMetaData.test.js b/packages/webdriver-utils/test/metadata/desktopMetaData.test.js index fb2df2156..5f196653e 100644 --- a/packages/webdriver-utils/test/metadata/desktopMetaData.test.js +++ b/packages/webdriver-utils/test/metadata/desktopMetaData.test.js @@ -108,7 +108,7 @@ describe('DesktopMetaData', () => { screenInfo = await desktopMetaData.screenResolution(); expect(screenInfo).toEqual('1980 x 1080'); expect(executeScriptSpy) - .toHaveBeenCalledWith({ script: 'return [window.screen.width.toString(), window.screen.height.toString()];', args: [] }); + .toHaveBeenCalledWith({ script: 'return [(window.screen.width * window.devicePixelRatio).toString(), (window.screen.height * window.devicePixelRatio).toString()];', args: [] }); }); }); }); diff --git a/packages/webdriver-utils/test/metadata/mobileMetaData.test.js b/packages/webdriver-utils/test/metadata/mobileMetaData.test.js index bcba86656..f8dd9b187 100644 --- a/packages/webdriver-utils/test/metadata/mobileMetaData.test.js +++ b/packages/webdriver-utils/test/metadata/mobileMetaData.test.js @@ -113,4 +113,19 @@ describe('MobileMetaData', () => { .toHaveBeenCalledWith({ script: 'return window.devicePixelRatio;', args: [] }); }); }); + + describe('screenResolution', () => { + let screenInfo; + + beforeEach(() => { + executeScriptSpy.and.returnValue(Promise.resolve({ value: ['1980', '1080'] })); + }); + + it('calclulates the screen resolution', async () => { + screenInfo = await mobileMetaData.screenResolution(); + expect(screenInfo).toEqual('1980 x 1080'); + expect(executeScriptSpy) + .toHaveBeenCalledWith({ script: 'return [(window.screen.width * window.devicePixelRatio).toString(), (window.screen.height * window.devicePixelRatio).toString()];', args: [] }); + }); + }); });