parent
d4c4e3d9d1
commit
adb898aad4
@ -0,0 +1,25 @@ |
||||
import { NightwatchBrowser } from 'nightwatch' |
||||
import EventEmitter from 'events' |
||||
|
||||
class WaitForElementContainsText extends EventEmitter { |
||||
command (this: NightwatchBrowser, id: string, value: string): NightwatchBrowser { |
||||
let incr = 0 |
||||
const runid = setInterval(() => { |
||||
this.api.getText(id, (result) => { |
||||
if (typeof result.value === 'string' && value.indexOf(result.value || '') !== -1) { |
||||
clearInterval(runid) |
||||
this.api.assert.ok(true, `WaitForElementContainsText ${id} contains ${value}`) |
||||
this.emit('complete') |
||||
} else incr++ |
||||
if (incr > 50) { |
||||
clearInterval(runid) |
||||
this.api.assert.fail(`WaitForElementContainsText - expected ${value} but got ${result.value}`) |
||||
// throw new Error(`WaitForElementContainsText ${id} ${value}`)
|
||||
} |
||||
}) |
||||
}, 200) |
||||
return this |
||||
} |
||||
} |
||||
|
||||
module.exports = WaitForElementContainsText |
@ -0,0 +1,334 @@ |
||||
'use strict' |
||||
import { NightwatchBrowser } from "nightwatch" |
||||
|
||||
const init = require('../helpers/init') |
||||
const sauce = require('./sauce') |
||||
|
||||
module.exports = { |
||||
before: function (browser: NightwatchBrowser, done: VoidFunction) { |
||||
init(browser, done, 'http://127.0.0.1:8080', false) |
||||
}, |
||||
|
||||
'Should display settings menu': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="remixIdeIconPanel"]', 10000) |
||||
.click('*[data-id="landingPageStartSolidity"]') |
||||
.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="verticalIconsKindsettings"]') |
||||
.waitForElementContainsText('h6[data-id="sidePanelSwapitTitle"]', 'SETTINGS') |
||||
}, |
||||
|
||||
'Should open gitter channel in a new tab when `Gitter Channel Button` is clicked': function (browser: NightwatchBrowser) { |
||||
const runtimeBrowser = browser.capabilities.browserName |
||||
|
||||
browser.waitForElementVisible('*[data-id="remixIdeSidePanel"]') |
||||
.waitForElementVisible('*[data-id="settingsTabGitterChannelButton"]', 5000) |
||||
.click('*[data-id="settingsTabGitterChannelButton"]') |
||||
.pause(2000) |
||||
.perform((done) => { if (runtimeBrowser === 'chrome') { browser.switchBrowserTab(1).assert.urlContains('https://gitter.im/ethereum/remix') } done() }) |
||||
}, |
||||
|
||||
'Should activate `generate contract metadata`': function (browser: NightwatchBrowser) { |
||||
browser.switchBrowserTab(0) |
||||
.waitForElementVisible('*[data-id="remixIdeSidePanel"]', 5000) |
||||
.waitForElementVisible('*[data-id="settingsTabGenerateContractMetadata"]', 5000) |
||||
.click('*[data-id="settingsTabGenerateContractMetadata"]') |
||||
.click('*[data-id="verticalIconsFileExplorerIcons"]') |
||||
.openFile('browser/3_Ballot.sol') |
||||
.click('*[data-id="verticalIconsKindsolidity"]') |
||||
.pause(2000) |
||||
.click('*[data-id="compilerContainerCompileBtn"]') |
||||
.pause(3000) |
||||
.click('*[data-id="verticalIconsKindfileExplorers"]') |
||||
.openFile('browser/artifacts/Ballot.json') |
||||
}, |
||||
|
||||
'Should add new github access token': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="verticalIconsKindsettings"]') |
||||
.setValue('*[data-id="settingsTabGistAccessToken"]', '**********') |
||||
.click('*[data-id="settingsTabSaveGistToken"]') |
||||
.waitForElementVisible('*[data-shared="tooltipPopup"]:nth-last-of-type(1)', 5000) |
||||
.assert.containsText('*[data-shared="tooltipPopup"]:nth-last-of-type(1)', 'Access token saved') |
||||
}, |
||||
|
||||
'Should copy github access token to clipboard': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="copyToClipboardCopyIcon"]') |
||||
.waitForElementVisible('*[data-shared="tooltipPopup"]:nth-last-of-type(1)', 5000) |
||||
.assert.containsText('*[data-shared="tooltipPopup"]:nth-last-of-type(1)', 'Copied value to clipboard.') |
||||
}, |
||||
|
||||
'Should remove github access token': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabRemoveGistToken"]') |
||||
.waitForElementVisible('*[data-shared="tooltipPopup"]:nth-last-of-type(1)', 5000) |
||||
.assert.containsText('*[data-shared="tooltipPopup"]:nth-last-of-type(1)', 'Access token removed') |
||||
.assert.containsText('*[data-id="settingsTabGistAccessToken"]', '') |
||||
}, |
||||
|
||||
'Should load dark theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeDark"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.dark.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.dark.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.dark.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.dark.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.dark.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.dark.danger) |
||||
}, |
||||
|
||||
'Should load light theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeLight"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.light.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.light.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.light.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.light.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.light.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.light.danger) |
||||
}, |
||||
|
||||
'Should load Cerulean theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeCerulean"]') |
||||
.pause(5000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.curelean.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.curelean.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.curelean.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.curelean.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.curelean.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.curelean.danger) |
||||
}, |
||||
|
||||
'Should load Flatly theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeFlatly"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.flatly.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.flatly.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.flatly.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.flatly.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.flatly.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.flatly.danger) |
||||
}, |
||||
|
||||
'Should load Lumen theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeLumen"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.lumen.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.lumen.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.lumen.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.lumen.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.lumen.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.lumen.danger) |
||||
}, |
||||
|
||||
'Should load Minty theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeMinty"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.minty.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.minty.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.minty.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.minty.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.minty.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.minty.danger) |
||||
}, |
||||
|
||||
'Should load Pulse theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemePulse"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.pulse.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.pulse.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.pulse.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.pulse.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.pulse.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.pulse.danger) |
||||
}, |
||||
|
||||
'Should load Sandstone theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeSandstone"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.sandstone.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.sandstone.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.sandstone.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.sandstone.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.sandstone.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.sandstone.danger) |
||||
}, |
||||
|
||||
'Should load Spacelab theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeSpacelab"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.spacelab.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.spacelab.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.spacelab.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.spacelab.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.spacelab.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.spacelab.danger) |
||||
}, |
||||
|
||||
'Should load Yeti theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeYeti"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.yeti.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.yeti.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.yeti.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.yeti.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.yeti.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.yeti.danger) |
||||
}, |
||||
|
||||
'Should load Cyborg theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeCyborg"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.cyborg.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.cyborg.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.cyborg.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.cyborg.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.cyborg.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.cyborg.danger) |
||||
}, |
||||
|
||||
'Should load Darkly theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeDarkly"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.darkly.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.darkly.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.darkly.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.darkly.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.darkly.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.darkly.danger) |
||||
}, |
||||
|
||||
'Should load Superhero theme': function (browser: NightwatchBrowser) { |
||||
browser.waitForElementVisible('*[data-id="verticalIconsKindsettings"]', 5000) |
||||
.click('*[data-id="settingsTabThemeSuperhero"]') |
||||
.pause(2000) |
||||
.checkElementStyle(':root', '--primary', remixIdeThemes.superhero.primary) |
||||
.checkElementStyle(':root', '--secondary', remixIdeThemes.superhero.secondary) |
||||
.checkElementStyle(':root', '--success', remixIdeThemes.superhero.success) |
||||
.checkElementStyle(':root', '--info', remixIdeThemes.superhero.info) |
||||
.checkElementStyle(':root', '--warning', remixIdeThemes.superhero.warning) |
||||
.checkElementStyle(':root', '--danger', remixIdeThemes.superhero.danger) |
||||
.end() |
||||
}, |
||||
|
||||
tearDown: sauce |
||||
} |
||||
|
||||
const remixIdeThemes = { |
||||
dark: { |
||||
primary: '#007aa6', |
||||
secondary: '#595c76', |
||||
success: '#32ba89', |
||||
info: '#086CB5', |
||||
warning: '#c97539', |
||||
danger: '#b84040' |
||||
}, |
||||
light: { |
||||
primary: '#007aa6', |
||||
secondary: '#a8b3bc', |
||||
success: '#32ba89', |
||||
info: '#007aa6', |
||||
warning: '#c97539', |
||||
danger: '#b84040' |
||||
}, |
||||
curelean: { |
||||
primary: '#2FA4E7', |
||||
secondary: '#e9ecef', |
||||
success: '#73A839', |
||||
info: '#033C73', |
||||
warning: '#DD5600', |
||||
danger: '#C71C22' |
||||
}, |
||||
flatly: { |
||||
primary: '#2C3E50', |
||||
secondary: '#95a5a6', |
||||
success: '#18BC9C', |
||||
info: '#3498DB', |
||||
warning: '#F39C12', |
||||
danger: '#E74C3C' |
||||
}, |
||||
lumen: { |
||||
primary: '#158CBA', |
||||
secondary: '#f0f0f0', |
||||
success: '#28B62C', |
||||
info: '#75CAEB', |
||||
warning: '#FF851B', |
||||
danger: '#FF4136' |
||||
}, |
||||
minty: { |
||||
primary: '#78C2AD', |
||||
secondary: '#F3969A', |
||||
success: '#56CC9D', |
||||
info: '#6CC3D5', |
||||
warning: '#FFCE67', |
||||
danger: '#FF7851' |
||||
}, |
||||
pulse: { |
||||
primary: '#593196', |
||||
secondary: '#A991D4', |
||||
success: '#13B955', |
||||
info: '#009CDC', |
||||
warning: '#EFA31D', |
||||
danger: '#FC3939' |
||||
}, |
||||
sandstone: { |
||||
primary: '#325D88', |
||||
secondary: '#8E8C84', |
||||
success: '#93C54B', |
||||
info: '#29ABE0', |
||||
warning: '#F47C3C', |
||||
danger: '#d9534f' |
||||
}, |
||||
spacelab: { |
||||
primary: '#446E9B', |
||||
secondary: '#999', |
||||
success: '#3CB521', |
||||
info: '#3399F3', |
||||
warning: '#D47500', |
||||
danger: '#CD0200' |
||||
}, |
||||
yeti: { |
||||
primary: '#008cba', |
||||
secondary: '#eee', |
||||
success: '#43ac6a', |
||||
info: '#5bc0de', |
||||
warning: '#E99002', |
||||
danger: '#F04124' |
||||
}, |
||||
cyborg: { |
||||
primary: '#2A9FD6', |
||||
secondary: '#555', |
||||
success: '#77B300', |
||||
info: '#9933CC', |
||||
warning: '#FF8800', |
||||
danger: '#CC0000' |
||||
}, |
||||
darkly: { |
||||
primary: '#375a7f', |
||||
secondary: '#444', |
||||
success: '#00bc8c', |
||||
info: '#3498DB', |
||||
warning: '#F39C12', |
||||
danger: '#E74C3C' |
||||
}, |
||||
superhero: { |
||||
primary: '#DF691A', |
||||
secondary: '#4E5D6C', |
||||
success: '#5cb85c', |
||||
info: '#5bc0de', |
||||
warning: '#f0ad4e', |
||||
danger: '#d9534f' |
||||
} |
||||
} |
Loading…
Reference in new issue