Skip to content
This repository has been archived by the owner on May 10, 2023. It is now read-only.

Commit

Permalink
Added test for setSize & getSize
Browse files Browse the repository at this point in the history
  • Loading branch information
simonradier committed Mar 13, 2021
1 parent 5f41bcd commit ecc4b79
Show file tree
Hide file tree
Showing 3 changed files with 187 additions and 3 deletions.
11 changes: 10 additions & 1 deletion src/webdriver/simple-webdriver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,15 @@ export class SimpleWebDriver {
});
})
},
getSize : async () => {
return new Promise<WindowRect> (async (resolve, reject) => {
wdapi.call<WindowRect>(this.serverURL, this._api.WINDOW_GETRECT(this.session, handle)).then(resp => {
resolve(resp.body.value);
}).catch(err => {
reject(err);
});
})
},
maximize : async () => {
return new Promise<WindowRect> (async (resolve, reject) => {
wdapi.call<WindowRect>(this.serverURL, this._api.WINDOW_MAXIMIZE(this.session, handle)).then(resp => {
Expand Down Expand Up @@ -215,7 +224,7 @@ export class SimpleWebDriver {
return this._windowActions(handle);
},
current : () => {
return this._windowActions(this._currentHandle);
return this.window().handle(this._currentHandle);
}
}
}
Expand Down
77 changes: 77 additions & 0 deletions test/unit/simple-webdriver/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -673,3 +673,80 @@ export let WD_ELEMENT_ISENABLED= {
}
}

export let WD_WINDOW_GETTITLE= {
OK : {
code : 200,
body : {
"value" : "WD2 Test Page"
},
headers : { "Content-Type" : "application/json"}
},
KO : {
code : 500,
body : {
"value" : {
"error" : "window",
"message" : "internal server error",
"stacktrace" : "this is a stack\ntrace"
}
},
headers : { "Content-Type" : "application/json" }
}
}

export let WD_WINDOW_SETSIZE = (width, height) => {
return {
OK : {
code : 200,
body : {
"value" : {
"height": width,
"width": height,
"x": 0,
"y": 0
}
},
headers : { "Content-Type" : "application/json"}
},
KO : {
code : 500,
body : {
"value" : {
"error" : "window",
"message" : "internal server error",
"stacktrace" : "this is a stack\ntrace"
}
},
headers : { "Content-Type" : "application/json" }
}
}
}

export let WD_WINDOW_GETSIZE = {
OK : {
code : 200,
body : {
"value" : {
"height": 1280,
"width": 720,
"x": 0,
"y": 0
}
},
headers : { "Content-Type" : "application/json"}
},
KO : {
code : 500,
body : {
"value" : {
"error" : "window",
"message" : "internal server error",
"stacktrace" : "this is a stack\ntrace"
}
},
headers : { "Content-Type" : "application/json" }
}
}



102 changes: 100 additions & 2 deletions test/unit/simple-webdriver/simple-driver.generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -991,11 +991,109 @@ export function generateSimpleDriverTest(browser : string) {
await expect(driver.window().getAllHandles()).to.be.rejected;
});
});
describe ('handle', function (){
describe ('current', function (){
describe('getTitle', async function () {
it('should return the title of the windows if the webdriver server response is successful', async function() {
let driver : SimpleWebDriver;
driver = new SimpleWebDriver(td.WD_SERVER_URL_HTTP[browser], Browser[browser]);
await expect(driver.start(), 'start').to.be.fulfilled;
await expect(driver.navigate().to(td.WD_WEBSITE_URL_HTTP), 'navigate to webpage').to.be.fulfilled;
let resp = td.WD_WINDOW_GETTITLE.OK;
nock(td.WD_SERVER_URL_HTTP[browser]).get(`/session/${td.WD_SESSION_ID}/title`).reply(resp.code, resp.body, resp.headers);
await expect(driver.window().current().getTitle()).to.become("WD2 Test Page");
});
it('should throw an error if the webdriver server return an error | Nock Only', async function () {
let driver : SimpleWebDriver;
driver = new SimpleWebDriver(td.WD_SERVER_URL_HTTP[browser], Browser[browser]);
await expect(driver.start(), 'start').to.be.fulfilled;
await expect(driver.navigate().to(td.WD_WEBSITE_URL_HTTP), 'navigate to webpage').to.be.fulfilled;
let resp = td.WD_WINDOW_GETTITLE.KO;
nock(td.WD_SERVER_URL_HTTP[browser]).get(`/session/${td.WD_SESSION_ID}/title`).reply(resp.code, resp.body, resp.headers);
await expect(driver.window().current().getTitle()).to.be.rejected;
});
});

describe('getSize', function () {
it('should modify the windows size if the webdriver server response is successful', async function() {
let driver : SimpleWebDriver;
driver = new SimpleWebDriver(td.WD_SERVER_URL_HTTP[browser], Browser[browser]);
await expect(driver.start(), 'start').to.be.fulfilled;
await expect(driver.navigate().to(td.WD_WEBSITE_URL_HTTP), 'navigate to webpage').to.be.fulfilled;
let resp = td.WD_WINDOW_GETSIZE.OK;
nock(td.WD_SERVER_URL_HTTP[browser]).get(`/session/${td.WD_SESSION_ID}/window/rect`).reply(resp.code, resp.body, resp.headers);
await expect(driver.window().current().getSize()).to.be.fulfilled;
});
it('should throw an error if the webdriver server return an error | Nock Only', async function () {
let driver : SimpleWebDriver;
driver = new SimpleWebDriver(td.WD_SERVER_URL_HTTP[browser], Browser[browser]);
await expect(driver.start(), 'start').to.be.fulfilled;
await expect(driver.navigate().to(td.WD_WEBSITE_URL_HTTP), 'navigate to webpage').to.be.fulfilled;
let resp = td.WD_WINDOW_GETSIZE.KO;
nock(td.WD_SERVER_URL_HTTP[browser]).get(`/session/${td.WD_SESSION_ID}/window/rect`).reply(resp.code, resp.body, resp.headers);
await expect(driver.window().current().getSize()).to.be.rejected;
});
});

describe('setSize', function () {
it('should modify the windows size if the webdriver server response is successful', async function() {
let driver : SimpleWebDriver;
driver = new SimpleWebDriver(td.WD_SERVER_URL_HTTP[browser], Browser[browser]);
await expect(driver.start(), 'start').to.be.fulfilled;
await expect(driver.navigate().to(td.WD_WEBSITE_URL_HTTP), 'navigate to webpage').to.be.fulfilled;
let resp = td.WD_WINDOW_SETSIZE(1280, 720).OK;
nock(td.WD_SERVER_URL_HTTP[browser]).post(`/session/${td.WD_SESSION_ID}/window/rect`).reply(resp.code, resp.body, resp.headers);
await expect(driver.window().current().setSize(1280, 720)).to.be.fulfilled;
});
it('should throw an error if the webdriver server return an error | Nock Only', async function () {
let driver : SimpleWebDriver;
driver = new SimpleWebDriver(td.WD_SERVER_URL_HTTP[browser], Browser[browser]);
await expect(driver.start(), 'start').to.be.fulfilled;
await expect(driver.navigate().to(td.WD_WEBSITE_URL_HTTP), 'navigate to webpage').to.be.fulfilled;
let resp = td.WD_WINDOW_SETSIZE(1280, 720).KO;
nock(td.WD_SERVER_URL_HTTP[browser]).post(`/session/${td.WD_SESSION_ID}/window/rect`).reply(resp.code, resp.body, resp.headers);
await expect(driver.window().current().setSize(1280, 720)).to.be.rejected;
});
});
describe('maximize', function () {

});
describe('minimize', function () {

});
describe('fullscreen', function () {

});
describe('switch', function () {

});
describe('screenshot', function () {

});
});
describe ('current', function () {
describe ('handle', function () {
describe('getTitle', function () {
it('should return the title of the webpage if the webdriver server response is successful', function() {

});
});
describe('setSize', function () {

});
describe('maximize', function () {

});
describe('minimize', function () {

});
describe('fullscreen', function () {

});
describe('switch', function () {

});
describe('screenshot', function () {

});
});
});
});
Expand Down

0 comments on commit ecc4b79

Please sign in to comment.