Skip to content

Commit 55c3549

Browse files
author
Maksim Kostromin
committed
Pull images in before stage.
1 parent 74f7405 commit 55c3549

File tree

3 files changed

+108
-8
lines changed

3 files changed

+108
-8
lines changed

.github/workflows/ci.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,9 @@ jobs:
1717
- run: |
1818
echo "JAVA_HOME: $JAVA_HOME"
1919
java -version
20-
- run: ./mvnw
20+
- run: docker pull -q alpine:3.17
21+
- run: docker pull -q testcontainers/ryuk:0.11.0
22+
- run: docker pull -q testcontainers/vnc-recorder:1.3.0
23+
- run: docker pull -q selenium/standalone-firefox:4.13.0
24+
- run: ./mvnw clean ; ./mvnw test --no-transfer-progress
25+
- run: ls -lah ./target/

src/test/java/com/github/daggerok/JunitJupiterTests.java

Lines changed: 48 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import com.codeborne.selenide.Selenide;
44
import com.codeborne.selenide.WebDriverRunner;
5+
import lombok.extern.slf4j.Slf4j;
56
import org.junit.jupiter.api.AfterAll;
67
import org.junit.jupiter.api.BeforeEach;
78
import org.junit.jupiter.api.Test;
89
import org.openqa.selenium.Capabilities;
910
import org.openqa.selenium.chrome.ChromeOptions;
11+
import org.openqa.selenium.firefox.FirefoxDriver;
1012
import org.openqa.selenium.firefox.FirefoxOptions;
1113
import org.openqa.selenium.remote.RemoteWebDriver;
1214
import org.testcontainers.containers.BrowserWebDriverContainer;
@@ -26,6 +28,7 @@
2628

2729
// 1: Add required dependency: org.testcontainers:junit-jupiter
2830
// 2: Add class level annotation:
31+
@Slf4j
2932
@Testcontainers
3033
class JunitJupiterTests {
3134

@@ -49,29 +52,67 @@ void before() { // this one is not needed in case of build-tool output dir...
4952
if (Files.notExists(path)) path.toFile().mkdirs();
5053
}
5154

52-
@Test
55+
// @Test // Google Captcha is blocking a test...
5356
void main() {
54-
for (int i = 0; i < 2; i++) {
55-
should_google_search_and_wait_for("ололо"); // ru
56-
should_google_search_and_wait_for("trololo"); // en
57-
}
57+
should_google_search_and_wait_for("DonaldTrump");
5858
// WebDriverRunner.closeWebDriver(); // should I do that?
5959
}
6060

6161
private void should_google_search_and_wait_for(String query) {
62+
// // WebDriverRunner.setWebDriver(new FirefoxDriver());
6263
// create selenide driver from existing one - remote Chrome WebDriver, pointing of docker test container:
64+
log.info("RemoteWebDriver remoteWebDriver = browser.getWebDriver();");
6365
RemoteWebDriver remoteWebDriver = browser.getWebDriver();
66+
log.info("WebDriverRunner.setWebDriver(remoteWebDriver);");
6467
WebDriverRunner.setWebDriver(remoteWebDriver);
68+
69+
// base project dir
70+
String baseDir = System.getProperty("user.dir");
71+
log.info("baseDir: {}", baseDir);
72+
6573
// regular Selenide test:
74+
log.info("Selenide.open('https://google.com?q={}')", query);
6675
Selenide.open("https://google.com?q=" + query);
67-
$$("form").filterBy(exist).first().shouldBe(visible).submit();
68-
$(byValue(query)).shouldBe(exist).shouldBe(visible).submit();
76+
77+
// Selenide.screenshot(String.format("%s/target/google-search-and-wait-for-ololo-screenshot-1.png", baseDir));
78+
Selenide.screenshot("../../../target/google-search-and-wait-for-ololo-screenshot-1.png");
79+
80+
log.info("$('form[action='/search']').shouldBe(exist).shouldBe(visible).submit();");
81+
$("form[action='/search']").shouldBe(exist).shouldBe(visible).submit();
82+
// Selenide.screenshot(String.format("%s/target/google-search-and-wait-for-ololo-screenshot-2.png", baseDir));
83+
Selenide.screenshot("../../../target/google-search-and-wait-for-ololo-screenshot-2.png");
84+
85+
// log.info("$(byValue(query)).shouldBe(exist).shouldBe(visible).submit();");
86+
// $(byValue(query)).shouldBe(exist).shouldBe(visible).submit();
87+
// // Selenide.screenshot(String.format("%s/target/google-search-and-wait-for-ololo-screenshot-3.png", baseDir));
88+
// Selenide.screenshot("../../../target/google-search-and-wait-for-ololo-screenshot-3.png");
89+
}
90+
91+
@Test
92+
void should_test_html() {
93+
WebDriverRunner.setWebDriver(new FirefoxDriver());
94+
// // create selenide driver from existing one - remote Chrome WebDriver, pointing of docker test container:
95+
// log.info("RemoteWebDriver remoteWebDriver = browser.getWebDriver();");
96+
// RemoteWebDriver remoteWebDriver = browser.getWebDriver();
97+
// log.info("WebDriverRunner.setWebDriver(remoteWebDriver);");
98+
// WebDriverRunner.setWebDriver(remoteWebDriver);
99+
100+
// base project dir
101+
String baseDir = System.getProperty("user.dir");
102+
log.info("baseDir: {}", baseDir);
103+
104+
// Selenide
105+
log.info("Selenide.open('{}/src/test/resources/test.html')", baseDir);
106+
Selenide.open(String.format("file://%s/src/test/resources/test.html", baseDir));
107+
Selenide.screenshot("../../../target/should-test-html-1.png");
69108
}
70109

71110
@AfterAll
72111
static void afterAll() {
73112
// Warning: at this point if time Selenide will also stops Chrome remote WebDriver too...
113+
log.info("Selenide.closeWindow();");
74114
Selenide.closeWindow();
115+
log.info("Selenide.closeWebDriver();");
75116
Selenide.closeWebDriver();
76117
}
77118
}

src/test/resources/test.html

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<html>
2+
<head>
3+
<meta charset="utf-8">
4+
<title>Buzz Banner Preview</title>
5+
<style>
6+
.bw-center-wrap {
7+
position: absolute;
8+
width: 100%;
9+
height: 100%;
10+
display: flex;
11+
align-items: center;
12+
justify-content: center;
13+
}
14+
.bw-center {
15+
align-self: center;
16+
}
17+
</style>
18+
</head>
19+
<body style="margin: 0; padding: 0;">
20+
<script type='text/javascript'>
21+
/**
22+
* This code is needed for Creative V2 banner preview
23+
* Sends specific message to parent (main page) each time banner is clicked
24+
*/
25+
(function () {
26+
window.addEventListener('load', () => {
27+
document.querySelectorAll('img').forEach(img => {
28+
img.addEventListener('click', () => {
29+
window.parent.postMessage('bannerClick', '*')
30+
})
31+
})
32+
})
33+
})()
34+
</script>
35+
<div class="bw-center-wrap">
36+
<div class="bw-center">
37+
<div id='beeswax-ad-wrapper' style='position: relative;'><img src="https://s3.amazonaws.com/buzz-creative-assets/0.gif" style="position: absolute;" width='0' height='0'><ins class='dcmads' style='display:inline-block;width:300px;height:600px'
38+
data-dcm-placement='N801132.4109095GENIUSSPORTS/B33174615.413566054'
39+
data-dcm-rendering-mode='iframe'
40+
data-dcm-https-only
41+
data-dcm-api-frameworks='[APIFRAMEWORKS]'
42+
data-dcm-omid-partner='[OMIDPARTNER]'
43+
data-dcm-gdpr-applies='gdpr=${GDPR}'
44+
data-dcm-gdpr-consent='gdpr_consent=${GDPR_CONSENT_755}'
45+
data-dcm-addtl-consent='addtl_consent=${ADDTL_CONSENT}'
46+
data-dcm-ltd='false'
47+
data-dcm-resettable-device-id=''
48+
data-dcm-app-id='' data-dcm-click-tracker='[click][/click]'>
49+
<script src='https://www.googletagservices.com/dcm/dcmads.js'></script>
50+
</ins></div>
51+
</div>
52+
</div>
53+
</body>
54+
</html>

0 commit comments

Comments
 (0)