Skip to content

Commit 6b119ec

Browse files
author
David Haeffner
committed
Renamed e2e tests for junit code export slightly. Also fixed a bug where multiple waitForWindow util methods were getting emitted.
1 parent f23d84c commit 6b119ec

File tree

4 files changed

+220
-67
lines changed

4 files changed

+220
-67
lines changed

packages/code-export-java-junit/__test__/src/__snapshots__/index.spec.js.snap

Lines changed: 130 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3-
exports[`Code Export Java Selenium should export a suite to JUnit code 1`] = `
3+
exports[`Code Export Java JUnit Selenium should export a suite 1`] = `
44
"// Generated by Selenium IDE
55
import org.junit.Test;
66
import org.junit.Before;
@@ -56,7 +56,7 @@ public class LoginTest {
5656
"
5757
`;
5858

59-
exports[`Code Export Java Selenium should export a suite to JUnit code that uses control flow commands 1`] = `
59+
exports[`Code Export Java JUnit Selenium should export a suite that uses control flow commands 1`] = `
6060
"// Generated by Selenium IDE
6161
import org.junit.Test;
6262
import org.junit.Before;
@@ -155,7 +155,64 @@ public class ControlflowTest {
155155
"
156156
`;
157157

158-
exports[`Code Export Java Selenium should export a suite to JUnit code with commands that open a new window inside of a reused test method 1`] = `
158+
exports[`Code Export Java JUnit Selenium should export a suite with a reused test method 1`] = `
159+
"// Generated by Selenium IDE
160+
import org.junit.Test;
161+
import org.junit.Before;
162+
import org.junit.After;
163+
import static org.junit.Assert.*;
164+
import static org.hamcrest.CoreMatchers.is;
165+
import static org.hamcrest.core.IsNot.not;
166+
import org.openqa.selenium.By;
167+
import org.openqa.selenium.WebDriver;
168+
import org.openqa.selenium.firefox.FirefoxDriver;
169+
import org.openqa.selenium.Dimension;
170+
import org.openqa.selenium.WebElement;
171+
import org.openqa.selenium.interactions.Actions;
172+
import org.openqa.selenium.support.ui.ExpectedConditions;
173+
import org.openqa.selenium.support.ui.WebDriverWait;
174+
import org.openqa.selenium.JavascriptExecutor;
175+
import org.openqa.selenium.Alert;
176+
import org.openqa.selenium.Keys;
177+
import java.util.*;
178+
public class LoginTest {
179+
private WebDriver driver;
180+
private Map<String, Object> vars;
181+
JavascriptExecutor js;
182+
@Before
183+
public void setUp() {
184+
driver = new FirefoxDriver();
185+
js = (JavascriptExecutor) driver;
186+
vars = new HashMap<String, Object>();
187+
}
188+
@After
189+
public void tearDown() {
190+
driver.quit();
191+
}
192+
public void login() {
193+
driver.get(\\"https://the-internet.herokuapp.com/\\");
194+
driver.findElement(By.linkText(\\"Form Authentication\\")).click();
195+
driver.findElement(By.id(\\"username\\")).sendKeys(vars.get(\\"username\\").toString());
196+
driver.findElement(By.id(\\"password\\")).sendKeys(vars.get(\\"password\\").toString());
197+
driver.findElement(By.cssSelector(\\".fa\\")).click();
198+
}
199+
@Test
200+
public void invalidcredentials() {
201+
vars.put(\\"username\\", \\"blah\\");
202+
vars.put(\\"password\\", \\"blah\\");
203+
login();
204+
}
205+
@Test
206+
public void validcredentials() {
207+
vars.put(\\"username\\", \\"tomsmith\\");
208+
vars.put(\\"password\\", \\"SuperSecretPassword!\\");
209+
login();
210+
}
211+
}
212+
"
213+
`;
214+
215+
exports[`Code Export Java JUnit Selenium should export a suite with commands that open a new window inside of a reused test method 1`] = `
159216
"// Generated by Selenium IDE
160217
import org.junit.Test;
161218
import org.junit.Before;
@@ -218,7 +275,7 @@ public class DefaultSuiteTest {
218275
"
219276
`;
220277
221-
exports[`Code Export Java Selenium should export a suite to JUnit code with reused test method 1`] = `
278+
exports[`Code Export Java JUnit Selenium should export a suite with just one new window util method when there are multiple commands that open a new window 1`] = `
222279
"// Generated by Selenium IDE
223280
import org.junit.Test;
224281
import org.junit.Before;
@@ -238,7 +295,7 @@ import org.openqa.selenium.JavascriptExecutor;
238295
import org.openqa.selenium.Alert;
239296
import org.openqa.selenium.Keys;
240297
import java.util.*;
241-
public class LoginTest {
298+
public class DefaultSuiteTest {
242299
private WebDriver driver;
243300
private Map<String, Object> vars;
244301
JavascriptExecutor js;
@@ -252,30 +309,45 @@ public class LoginTest {
252309
public void tearDown() {
253310
driver.quit();
254311
}
255-
public void login() {
256-
driver.get(\\"https://the-internet.herokuapp.com/\\");
257-
driver.findElement(By.linkText(\\"Form Authentication\\")).click();
258-
driver.findElement(By.id(\\"username\\")).sendKeys(vars.get(\\"username\\").toString());
259-
driver.findElement(By.id(\\"password\\")).sendKeys(vars.get(\\"password\\").toString());
260-
driver.findElement(By.cssSelector(\\".fa\\")).click();
312+
public String waitForWindow(int timeout) {
313+
try {
314+
Thread.sleep(timeout);
315+
} catch (InterruptedException e) {
316+
e.printStackTrace();
317+
}
318+
Set<String> whNow = driver.getWindowHandles();
319+
Set<String> whThen = (Set<String>) vars.get(\\"window_handles\\");
320+
if (whNow.size() > whThen.size()) {
321+
whNow.removeAll(whThen);
322+
}
323+
return whNow.iterator().next();
324+
}
325+
public void selectwindow() {
326+
driver.get(\\"http://the-internet.herokuapp.com/windows\\");
327+
vars.put(\\"window_handles\\", driver.getWindowHandles());
328+
driver.findElement(By.linkText(\\"Click Here\\")).click();
329+
vars.put(\\"win9425\\", waitForWindow(2000));
330+
driver.switchTo().window(vars.get(\\"win9425\\").toString());
331+
assertThat(driver.getTitle(), is(\\"New Window\\"));
261332
}
262333
@Test
263-
public void invalidcredentials() {
264-
vars.put(\\"username\\", \\"blah\\");
265-
vars.put(\\"password\\", \\"blah\\");
266-
login();
334+
public void reuse() {
335+
selectwindow();
267336
}
268337
@Test
269-
public void validcredentials() {
270-
vars.put(\\"username\\", \\"tomsmith\\");
271-
vars.put(\\"password\\", \\"SuperSecretPassword!\\");
272-
login();
338+
public void selectwindow() {
339+
driver.get(\\"http://the-internet.herokuapp.com/windows\\");
340+
vars.put(\\"window_handles\\", driver.getWindowHandles());
341+
driver.findElement(By.linkText(\\"Click Here\\")).click();
342+
vars.put(\\"win9425\\", waitForWindow(2000));
343+
driver.switchTo().window(vars.get(\\"win9425\\").toString());
344+
assertThat(driver.getTitle(), is(\\"New Window\\"));
273345
}
274346
}
275347
"
276348
`;
277349
278-
exports[`Code Export Java Selenium should export a test to JUnit code 1`] = `
350+
exports[`Code Export Java JUnit Selenium should export a test 1`] = `
279351
"// Generated by Selenium IDE
280352
import org.junit.Test;
281353
import org.junit.Before;
@@ -322,7 +394,7 @@ public class LoginTest {
322394
"
323395
`;
324396
325-
exports[`Code Export Java Selenium should export a test to JUnit code with commands that open a new window 1`] = `
397+
exports[`Code Export Java JUnit Selenium should export a test with a reused test method 1`] = `
326398
"// Generated by Selenium IDE
327399
import org.junit.Test;
328400
import org.junit.Before;
@@ -342,7 +414,7 @@ import org.openqa.selenium.JavascriptExecutor;
342414
import org.openqa.selenium.Alert;
343415
import org.openqa.selenium.Keys;
344416
import java.util.*;
345-
public class SelectwindowTest {
417+
public class ValidcredentialsTest {
346418
private WebDriver driver;
347419
private Map<String, Object> vars;
348420
JavascriptExecutor js;
@@ -356,38 +428,24 @@ public class SelectwindowTest {
356428
public void tearDown() {
357429
driver.quit();
358430
}
359-
public String waitForWindow(int timeout) {
360-
try {
361-
Thread.sleep(timeout);
362-
} catch (InterruptedException e) {
363-
e.printStackTrace();
364-
}
365-
Set<String> whNow = driver.getWindowHandles();
366-
Set<String> whThen = (Set<String>) vars.get(\\"window_handles\\");
367-
if (whNow.size() > whThen.size()) {
368-
whNow.removeAll(whThen);
369-
}
370-
return whNow.iterator().next();
431+
public void login() {
432+
driver.get(\\"https://the-internet.herokuapp.com/\\");
433+
driver.findElement(By.linkText(\\"Form Authentication\\")).click();
434+
driver.findElement(By.id(\\"username\\")).sendKeys(vars.get(\\"username\\").toString());
435+
driver.findElement(By.id(\\"password\\")).sendKeys(vars.get(\\"password\\").toString());
436+
driver.findElement(By.cssSelector(\\".fa\\")).click();
371437
}
372438
@Test
373-
public void selectwindow() {
374-
driver.get(\\"http://the-internet.herokuapp.com/\\");
375-
driver.manage().window().setSize(new Dimension(1260, 1027));
376-
driver.findElement(By.linkText(\\"Multiple Windows\\")).click();
377-
vars.put(\\"window_handles\\", driver.getWindowHandles());
378-
driver.findElement(By.linkText(\\"Click Here\\")).click();
379-
vars.put(\\"win9625\\", waitForWindow(2000));
380-
vars.put(\\"root\\", driver.getWindowHandle());
381-
driver.switchTo().window(vars.get(\\"win9625\\").toString());
382-
assertThat(driver.getTitle(), is(\\"New Window\\"));
383-
driver.switchTo().window(vars.get(\\"root\\").toString());
384-
assertThat(driver.getTitle(), is(\\"The Internet\\"));
439+
public void validcredentials() {
440+
vars.put(\\"username\\", \\"tomsmith\\");
441+
vars.put(\\"password\\", \\"SuperSecretPassword!\\");
442+
login();
385443
}
386444
}
387445
"
388446
`;
389447
390-
exports[`Code Export Java Selenium should export a test to JUnit code with reused test method 1`] = `
448+
exports[`Code Export Java JUnit Selenium should export a test with commands that open a new window 1`] = `
391449
"// Generated by Selenium IDE
392450
import org.junit.Test;
393451
import org.junit.Before;
@@ -407,7 +465,7 @@ import org.openqa.selenium.JavascriptExecutor;
407465
import org.openqa.selenium.Alert;
408466
import org.openqa.selenium.Keys;
409467
import java.util.*;
410-
public class ValidcredentialsTest {
468+
public class SelectwindowTest {
411469
private WebDriver driver;
412470
private Map<String, Object> vars;
413471
JavascriptExecutor js;
@@ -421,18 +479,32 @@ public class ValidcredentialsTest {
421479
public void tearDown() {
422480
driver.quit();
423481
}
424-
public void login() {
425-
driver.get(\\"https://the-internet.herokuapp.com/\\");
426-
driver.findElement(By.linkText(\\"Form Authentication\\")).click();
427-
driver.findElement(By.id(\\"username\\")).sendKeys(vars.get(\\"username\\").toString());
428-
driver.findElement(By.id(\\"password\\")).sendKeys(vars.get(\\"password\\").toString());
429-
driver.findElement(By.cssSelector(\\".fa\\")).click();
482+
public String waitForWindow(int timeout) {
483+
try {
484+
Thread.sleep(timeout);
485+
} catch (InterruptedException e) {
486+
e.printStackTrace();
487+
}
488+
Set<String> whNow = driver.getWindowHandles();
489+
Set<String> whThen = (Set<String>) vars.get(\\"window_handles\\");
490+
if (whNow.size() > whThen.size()) {
491+
whNow.removeAll(whThen);
492+
}
493+
return whNow.iterator().next();
430494
}
431495
@Test
432-
public void validcredentials() {
433-
vars.put(\\"username\\", \\"tomsmith\\");
434-
vars.put(\\"password\\", \\"SuperSecretPassword!\\");
435-
login();
496+
public void selectwindow() {
497+
driver.get(\\"http://the-internet.herokuapp.com/\\");
498+
driver.manage().window().setSize(new Dimension(1260, 1027));
499+
driver.findElement(By.linkText(\\"Multiple Windows\\")).click();
500+
vars.put(\\"window_handles\\", driver.getWindowHandles());
501+
driver.findElement(By.linkText(\\"Click Here\\")).click();
502+
vars.put(\\"win9625\\", waitForWindow(2000));
503+
vars.put(\\"root\\", driver.getWindowHandle());
504+
driver.switchTo().window(vars.get(\\"win9625\\").toString());
505+
assertThat(driver.getTitle(), is(\\"New Window\\"));
506+
driver.switchTo().window(vars.get(\\"root\\").toString());
507+
assertThat(driver.getTitle(), is(\\"The Internet\\"));
436508
}
437509
}
438510
"

packages/code-export-java-junit/__test__/src/index.spec.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ function readFile(filename) {
2626
)
2727
}
2828

29-
describe('Code Export Java Selenium', () => {
30-
it('should export a test to JUnit code', async () => {
29+
describe('Code Export Java JUnit Selenium', () => {
30+
it('should export a test', async () => {
3131
const project = readFile('single-test.side')
3232
const results = await emitTest({
3333
baseUrl: project.url,
@@ -37,7 +37,7 @@ describe('Code Export Java Selenium', () => {
3737
expect(results.body).toBeDefined()
3838
expect(results.body).toMatchSnapshot()
3939
})
40-
it('should export a suite to JUnit code', async () => {
40+
it('should export a suite', async () => {
4141
const project = normalizeProject(readFile('single-suite.side'))
4242
const results = await emitSuite({
4343
baseUrl: project.url,
@@ -47,7 +47,7 @@ describe('Code Export Java Selenium', () => {
4747
expect(results.body).toBeDefined()
4848
expect(results.body).toMatchSnapshot()
4949
})
50-
it('should export a test to JUnit code with reused test method', async () => {
50+
it('should export a test with a reused test method', async () => {
5151
const project = normalizeProject(readFile('test-case-reuse.side'))
5252
const results = await emitTest({
5353
baseUrl: project.url,
@@ -57,7 +57,7 @@ describe('Code Export Java Selenium', () => {
5757
expect(results.body).toBeDefined()
5858
expect(results.body).toMatchSnapshot()
5959
})
60-
it('should export a test to JUnit code with commands that open a new window', async () => {
60+
it('should export a test with commands that open a new window', async () => {
6161
const project = normalizeProject(readFile('select-window.side'))
6262
const results = await emitTest({
6363
baseUrl: project.url,
@@ -67,7 +67,7 @@ describe('Code Export Java Selenium', () => {
6767
expect(results.body).toBeDefined()
6868
expect(results.body).toMatchSnapshot()
6969
})
70-
it('should export a suite to JUnit code with reused test method', async () => {
70+
it('should export a suite with a reused test method', async () => {
7171
const project = normalizeProject(readFile('test-case-reuse.side'))
7272
const results = await emitSuite({
7373
baseUrl: project.url,
@@ -77,7 +77,7 @@ describe('Code Export Java Selenium', () => {
7777
expect(results.body).toBeDefined()
7878
expect(results.body).toMatchSnapshot()
7979
})
80-
it('should export a suite to JUnit code that uses control flow commands', async () => {
80+
it('should export a suite that uses control flow commands', async () => {
8181
const project = normalizeProject(readFile('control-flow-suite.side'))
8282
const results = await emitSuite({
8383
baseUrl: project.url,
@@ -87,7 +87,7 @@ describe('Code Export Java Selenium', () => {
8787
expect(results.body).toBeDefined()
8888
expect(results.body).toMatchSnapshot()
8989
})
90-
it('should export a suite to JUnit code with commands that open a new window inside of a reused test method', async () => {
90+
it('should export a suite with commands that open a new window inside of a reused test method', async () => {
9191
const project = normalizeProject(readFile('nested-select-window.side'))
9292
const results = await emitSuite({
9393
baseUrl: project.url,
@@ -97,6 +97,16 @@ describe('Code Export Java Selenium', () => {
9797
expect(results.body).toBeDefined()
9898
expect(results.body).toMatchSnapshot()
9999
})
100+
it('should export a suite with just one new window util method when there are multiple commands that open a new window', async () => {
101+
const project = normalizeProject(readFile('nested-select-window-v2.side'))
102+
const results = await emitSuite({
103+
baseUrl: project.url,
104+
suite: project.suites[0],
105+
tests: project.tests,
106+
})
107+
expect(results.body).toBeDefined()
108+
expect(results.body).toMatchSnapshot()
109+
})
100110
})
101111

102112
function normalizeProject(project) {

0 commit comments

Comments
 (0)