Skip to content

Commit

Permalink
Ensure ms edge runs on w3c on Sauce (#3832)
Browse files Browse the repository at this point in the history
* ensure ms edge runs on w3c on Sauce

* fix request mock
  • Loading branch information
christian-bromann committed Apr 10, 2019
1 parent f46c0fe commit 2379d23
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 4 deletions.
14 changes: 11 additions & 3 deletions packages/webdriver/src/utils.js
Expand Up @@ -198,11 +198,19 @@ export function isW3C (capabilities) {
* assume session to be a WebDriver session when
* - capabilities are returned
* (https://w3c.github.io/webdriver/#dfn-new-sessions)
* - a `platform` capability is not given but a platformName is returned
* which is not defined in the JSONWire protocol
* - it is an Appium session (since Appium is full W3C compliant)
*/
const isAppium = capabilities.automationName || capabilities.deviceName
return Boolean((!capabilities.platform && capabilities.platformName) || isAppium)
const hasW3CCaps = (
capabilities.platformName &&
capabilities.browserVersion &&
/**
* local safari doesn't provide platformVersion therefor
* check also for setWindowRect
*/
(capabilities.platformVersion || capabilities.setWindowRect)
)
return Boolean(hasW3CCaps || isAppium)
}

/**
Expand Down
25 changes: 25 additions & 0 deletions packages/webdriver/tests/__fixtures__/edgedriver.response.json
@@ -0,0 +1,25 @@
{
"value": {
"sessionId": "867A8C76-537F-4F2B-897C-85F87DF2C995",
"capabilities": {
"ms:inPrivate": false,
"browserVersion": "44.17763.1.0",
"takesScreenshot": true,
"acceptSslCerts": true,
"cssSelectorsEnabled": true,
"javascriptEnabled": true,
"browserName": "MicrosoftEdge",
"locationContextEnabled": true,
"platform": "ANY",
"takesElementScreenshot": true,
"webdriver.remote.sessionid": "199008b1e1e64a039d45e534d71b1e32",
"hasMetadata": true,
"applicationCacheEnabled": true,
"webStorageEnabled": true,
"pageLoadStrategy": "normal",
"platformName": "windows",
"platformVersion": "10",
"unhandledPromptBehavior": "dismiss and notify"
}
}
}
3 changes: 3 additions & 0 deletions packages/webdriver/tests/utils.test.js
Expand Up @@ -8,6 +8,7 @@ import chromedriverResponse from './__fixtures__/chromedriver.response.json'
import geckodriverResponse from './__fixtures__/geckodriver.response.json'
import safaridriverResponse from './__fixtures__/safaridriver.response.json'
import safaridriverLegacyResponse from './__fixtures__/safaridriver.legacy.response.json'
import edgedriverResponse from './__fixtures__/edgedriver.response.json'

describe('utils', () => {
it('isSuccessfulResponse', () => {
Expand Down Expand Up @@ -118,6 +119,7 @@ describe('utils', () => {
const chromeCaps = chromedriverResponse.value
const appiumCaps = appiumResponse.value.capabilities
const geckoCaps = geckodriverResponse.value.capabilities
const edgeCaps = edgedriverResponse.value.capabilities
const safariCaps = safaridriverResponse.value.capabilities
const safariLegacyCaps = safaridriverLegacyResponse.value

Expand All @@ -127,6 +129,7 @@ describe('utils', () => {
expect(environmentDetector({ capabilities: chromeCaps, requestedCapabilities }).isW3C).toBe(false)
expect(environmentDetector({ capabilities: geckoCaps, requestedCapabilities }).isW3C).toBe(true)
expect(environmentDetector({ capabilities: safariCaps, requestedCapabilities }).isW3C).toBe(true)
expect(environmentDetector({ capabilities: edgeCaps, requestedCapabilities }).isW3C).toBe(true)
expect(environmentDetector({ capabilities: safariLegacyCaps, requestedCapabilities }).isW3C).toBe(false)
expect(isW3C()).toBe(false)
})
Expand Down
4 changes: 3 additions & 1 deletion packages/webdriverio/tests/__mocks__/request.js
Expand Up @@ -14,7 +14,9 @@ const requestMock = jest.fn().mockImplementation((params, cb) => {
sessionId,
capabilities: {
browserName: 'mockBrowser',
platformName: 'node'
platformName: 'node',
browserVersion: '1234',
setWindowRect: true
}
}

Expand Down

0 comments on commit 2379d23

Please sign in to comment.