diff --git a/.gitignore b/.gitignore index f65ff125..097812ba 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ coverage/ .nyc_output/ docs/ .project +reports/ *.tgz *.sw* *.un~ diff --git a/test/alert.test.js b/test/alert.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/assert.test.js b/test/assert.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/browser.test.js b/test/browser.test.js new file mode 100644 index 00000000..385fe251 --- /dev/null +++ b/test/browser.test.js @@ -0,0 +1,118 @@ +'use strict'; + +const assert = require('assert'); + +const { Server } = require('./helper'); + +const wd = require('../lib/macaca-wd'); + +describe('test/browser.test.js', function() { + let driver, server; + before(() => { + server = new Server(); + server.start(); + const remoteConfig = { + host: 'localhost', + port: 3456 + }; + + driver = wd.promiseChainRemote(remoteConfig); + driver.configureHttp({ + timeout: 20 * 1000, + retries: 5, + retryDelay: 5 + }); + }); + + after(() => { + server.stop(); + }); + + beforeEach(async () => { + await driver.init({ + platformName: 'desktop', + browserName: 'chrome' + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#back + */ + describe('back', async () => { + it('should work', async () => { + await driver.back(); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/back'); + assert.equal(server.ctx.method, 'POST'); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#forward + */ + describe('forward', async () => { + it('should work', async () => { + await driver.forward(); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/forward'); + assert.equal(server.ctx.method, 'POST'); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#get + */ + describe('get', async () => { + it('should work', async () => { + await driver.get('https://github.com'); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/url'); + assert.equal(server.ctx.method, 'POST'); + assert.deepEqual(server.ctx.request.body.url, 'https://github.com'); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#maximize + */ + describe('maximize', async () => { + it('should work', async () => { + await driver.maximize(); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/window/current/maximize'); + assert.equal(server.ctx.method, 'POST'); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#maximize + */ + describe('refresh', async () => { + it('should work', async () => { + await driver.refresh(); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/refresh'); + assert.equal(server.ctx.method, 'POST'); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); +}); diff --git a/test/context.test.js b/test/context.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/cookie.test.js b/test/cookie.test.js new file mode 100644 index 00000000..27922cda --- /dev/null +++ b/test/cookie.test.js @@ -0,0 +1,73 @@ +'use strict'; + +const assert = require('assert'); + +const { Server } = require('./helper'); + +const wd = require('../lib/macaca-wd'); + +describe('test/cookie.test.js', function() { + let driver, server; + before(() => { + server = new Server(); + server.start(); + const remoteConfig = { + host: 'localhost', + port: 3456 + }; + + driver = wd.promiseChainRemote(remoteConfig); + driver.configureHttp({ + timeout: 20 * 1000, + retries: 5, + retryDelay: 5 + }); + }); + + after(() => { + server.stop(); + }); + + beforeEach(async () => { + await driver.init({ + platformName: 'desktop', + browserName: 'chrome' + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#allCookies + */ + describe('allCookies', async () => { + it('should work', async () => { + + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#deleteAllCookies + */ + describe('deleteAllCookies', async () => { + it('should work', async () => { + + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#deleteCookie + */ + describe('deleteCookie', async () => { + it('should work', async () => { + + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#setCookie + */ + describe('setCookie', async () => { + it('should work', async () => { + + }); + }); +}); \ No newline at end of file diff --git a/test/datahub.test.js b/test/datahub.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/element.test.js b/test/element.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/excecute.test.js b/test/excecute.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/helper.test.js b/test/helper.test.js deleted file mode 100644 index b8d748b9..00000000 --- a/test/helper.test.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -const assert = require('assert'); - -const helper = require('../lib/helper'); - -describe('test/helper.test.js', function() { - it('should be ok', function() { - assert.ok(helper); - }); -}); diff --git a/test/macaca-wd.test.js b/test/macaca-wd.test.js deleted file mode 100644 index 6bda8422..00000000 --- a/test/macaca-wd.test.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -const assert = require('assert'); - -const { Server } = require('./helper'); - -const wd = require('../lib/macaca-wd'); - -describe('test/macaca-wd.test.js', function() { - let driver, server; - before(() => { - server = new Server(); - server.start(); - const remoteConfig = { - host: 'localhost', - port: 3456 - }; - - driver = wd.promiseChainRemote(remoteConfig); - driver.configureHttp({ - timeout: 20 * 1000, - retries: 5, - retryDelay: 5 - }); - }); - - after(() => { - server.stop(); - }); - - it('init should be ok', async () => { - await driver.init({ - platformName: 'desktop', - browserName: 'chrome' - }); - assert.equal(server.ctx.url, '/wd/hub/session'); - }); - - it('get is ok', async () => { - await driver.get('baidu.com'); - assert.equal(server.ctx.url, '/wd/hub/session/sessionId/url'); - assert.equal(server.ctx.request.body.url, 'baidu.com'); - }); -}); diff --git a/test/others.test.js b/test/others.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/screenshot.test.js b/test/screenshot.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/session.test.js b/test/session.test.js new file mode 100644 index 00000000..af9d6787 --- /dev/null +++ b/test/session.test.js @@ -0,0 +1,102 @@ +'use strict'; + +const assert = require('assert'); + +const { Server } = require('./helper'); + +const wd = require('../lib/macaca-wd'); + +describe('test/session.test.js', function() { + let driver, server; + before(() => { + server = new Server(); + server.start(); + const remoteConfig = { + host: 'localhost', + port: 3456 + }; + + driver = wd.promiseChainRemote(remoteConfig); + driver.configureHttp({ + timeout: 20 * 1000, + retries: 5, + retryDelay: 5 + }); + }); + + after(() => { + server.stop(); + }); + + /** + * https://macacajs.github.io/macaca-wd/#init + */ + describe('init', async () => { + it('should work', async () => { + await driver.init({ + platformName: 'desktop', + browserName: 'chrome' + }); + assert.equal(server.ctx.method, 'POST'); + assert.equal(server.ctx.url, '/wd/hub/session'); + assert.deepEqual(server.ctx.request.body, { + desiredCapabilities: { + platformName: 'desktop', + browserName: 'chrome', + version: '', + javascriptEnabled: true, + platform: 'ANY', + }, + }); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#quit + */ + describe('quit', async () => { + beforeEach(async () => { + await driver.init({ + platformName: 'desktop', + browserName: 'chrome' + }); + }); + it('should work', async () => { + await driver.quit(); + assert.equal(server.ctx.method, 'DELETE'); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId'); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#sessions + */ + describe('sessions', async () => { + beforeEach(async () => { + await driver.init({ + platformName: 'desktop', + browserName: 'chrome' + }); + }); + it('should work', async () => { + await driver.sessions(); + assert.equal(server.ctx.method, 'GET'); + assert.equal(server.ctx.url, '/wd/hub/sessions'); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); +}); diff --git a/test/source.test.js b/test/source.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/title.test.js b/test/title.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/url.test.js b/test/url.test.js new file mode 100644 index 00000000..e69de29b diff --git a/test/utility.test.js b/test/utility.test.js new file mode 100644 index 00000000..477ccb8d --- /dev/null +++ b/test/utility.test.js @@ -0,0 +1,169 @@ +'use strict'; + +const assert = require('assert'); + +const { Server } = require('./helper'); + +const wd = require('../lib/macaca-wd'); + +describe('test/utility.test.js', function() { + let driver, server; + before(() => { + server = new Server(); + server.start(); + const remoteConfig = { + host: 'localhost', + port: 3456 + }; + + driver = wd.promiseChainRemote(remoteConfig); + driver.configureHttp({ + timeout: 20 * 1000, + retries: 5, + retryDelay: 5 + }); + }); + + after(() => { + server.stop(); + }); + + beforeEach(async () => { + await driver.init({ + platformName: 'desktop', + browserName: 'chrome' + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#coverage + */ + describe('coverage', async () => { + it('should work', async () => { + await driver.coverage(); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/execute'); + assert.equal(server.ctx.method, 'POST'); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#domEvent + */ + describe('domEvent', async () => { + it('should work', async () => { + await driver.domEvent(); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/execute'); + assert.equal(server.ctx.method, 'POST'); + assert.ok(server.ctx.request.body.script); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#elementInput + */ + describe('elementInput', async () => { + it('should work', async () => { + await driver.elementInput('content'); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/execute'); + assert.equal(server.ctx.method, 'POST'); + assert.ok(server.ctx.request.body.script); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#formInput + */ + describe('formInput', async () => { + it('should work', async () => { + await driver.formInput('content'); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/execute'); + assert.equal(server.ctx.method, 'POST'); + assert.ok(server.ctx.request.body.script); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#getUrl + */ + describe.skip('getUrl', async () => { + it('should work', async () => { + await driver.getUrl('https://github.com'); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/execute'); + assert.equal(server.ctx.method, 'POST'); + assert.ok(server.ctx.request.body.script); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#initWindow + */ + describe('initWindow', async () => { + it('should work', async () => { + await driver.initWindow({ + width: 800, + height: 600, + }); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/window/current/size'); + assert.equal(server.ctx.method, 'POST'); + assert.deepEqual(server.ctx.request.body, { + width: 800, + height: 600, + }); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#openReporter + */ + describe.skip('openReporter', async () => { + it('should work', async () => { + await driver.openReporter(); + }); + }); + + /** + * https://macacajs.github.io/macaca-wd/#saveScreenshots + */ + describe('saveScreenshots', async () => { + it('should work', async () => { + await driver.saveScreenshots(); + assert.equal(server.ctx.url, '/wd/hub/session/sessionId/screenshot'); + assert.equal(server.ctx.method, 'GET'); + assert.deepEqual(server.ctx.response.body, { + sessionId: 'sessionId', + status: 0, + value: '', + }); + }); + }); +}); diff --git a/test/window.test.js b/test/window.test.js new file mode 100644 index 00000000..e69de29b