├── 11
├── 241
└── qodana
├── 321
├── .allure
└── allure-2.8.1
│ ├── bin
│ ├── allure
│ └── allure.bat
│ ├── config
│ ├── allure-cucumber.yml
│ ├── allure-junit.yml
│ └── allure.yml
│ ├── lib
│ ├── allure-commandline-2.8.1.jar
│ ├── allure-generator-2.8.1.jar
│ ├── allure-plugin-api-2.8.1.jar
│ ├── allure1-model-1.0.jar
│ ├── allure2-model-api-1.0.0.jar
│ ├── allure2-model-jackson-1.0.0.jar
│ ├── allure2-model-pojo-1.0.0.jar
│ ├── commons-beanutils-1.9.3.jar
│ ├── commons-codec-1.10.jar
│ ├── commons-collections-3.2.2.jar
│ ├── commons-collections4-4.1.jar
│ ├── commons-io-2.6.jar
│ ├── commons-lang3-3.7.jar
│ ├── commons-logging-1.2.jar
│ ├── commons-text-1.4.jar
│ ├── config
│ │ ├── jetty-logging.properties
│ │ └── log4j.properties
│ ├── flexmark-0.34.8.jar
│ ├── flexmark-util-0.34.8.jar
│ ├── freemarker-2.3.28.jar
│ ├── httpclient-4.5.6.jar
│ ├── httpcore-4.4.10.jar
│ ├── jackson-annotations-2.9.0.jar
│ ├── jackson-core-2.9.6.jar
│ ├── jackson-databind-2.9.6.jar
│ ├── jackson-dataformat-xml-2.9.6.jar
│ ├── jackson-dataformat-yaml-2.9.6.jar
│ ├── jackson-module-jaxb-annotations-2.9.6.jar
│ ├── javax.servlet-api-3.1.0.jar
│ ├── jaxb-api-2.3.0.jar
│ ├── jaxb-utils-1.0.jar
│ ├── jcommander-1.72.jar
│ ├── jetty-http-9.4.11.v20180605.jar
│ ├── jetty-io-9.4.11.v20180605.jar
│ ├── jetty-server-9.4.11.v20180605.jar
│ ├── jetty-util-9.4.11.v20180605.jar
│ ├── log4j-1.2.17.jar
│ ├── opencsv-4.2.jar
│ ├── properties-2.0.RC5.jar
│ ├── slf4j-api-1.7.25.jar
│ ├── slf4j-log4j12-1.7.25.jar
│ ├── snakeyaml-1.18.jar
│ ├── stax2-api-3.1.4.jar
│ ├── tika-core-1.18.jar
│ └── woodstox-core-5.0.3.jar
│ └── plugins
│ ├── README.txt
│ ├── behaviors-plugin
│ ├── allure-plugin.yml
│ ├── plugin.jar
│ └── static
│ │ └── index.js
│ ├── custom-logo-plugin
│ ├── allure-plugin.yml
│ └── static
│ │ ├── custom-logo.svg
│ │ ├── logo.svg
│ │ └── styles.css
│ ├── jira-plugin
│ ├── allure-plugin.yml
│ ├── jira-plugin-2.8.1.jar
│ └── lib
│ │ ├── allure-jira-commons-2.8.1.jar
│ │ ├── converter-jackson-2.4.0.jar
│ │ ├── jackson-annotations-2.9.0.jar
│ │ ├── jackson-core-2.9.6.jar
│ │ ├── jackson-databind-2.9.6.jar
│ │ ├── okhttp-3.10.0.jar
│ │ ├── okio-1.14.0.jar
│ │ └── retrofit-2.4.0.jar
│ ├── junit-xml-plugin
│ ├── allure-plugin.yml
│ └── junit-xml-plugin-2.8.1.jar
│ ├── packages-plugin
│ ├── allure-plugin.yml
│ ├── plugin.jar
│ └── static
│ │ └── index.js
│ ├── screen-diff-plugin
│ ├── allure-plugin.yml
│ └── static
│ │ ├── index.js
│ │ └── styles.css
│ ├── trx-plugin
│ ├── allure-plugin.yml
│ └── trx-plugin-2.8.1.jar
│ ├── xctest-plugin
│ ├── allure-plugin.yml
│ ├── lib
│ │ └── xmlwise-1.2.11.jar
│ └── xctest-plugin-2.8.1.jar
│ ├── xray-plugin
│ ├── allure-plugin.yml
│ ├── lib
│ │ ├── allure-jira-commons-2.8.1.jar
│ │ ├── converter-jackson-2.4.0.jar
│ │ ├── jackson-annotations-2.9.0.jar
│ │ ├── jackson-core-2.9.6.jar
│ │ ├── jackson-databind-2.9.6.jar
│ │ ├── okhttp-3.10.0.jar
│ │ ├── okio-1.14.0.jar
│ │ └── retrofit-2.4.0.jar
│ └── xray-plugin-2.8.1.jar
│ └── xunit-xml-plugin
│ ├── allure-plugin.yml
│ └── xunit-xml-plugin-2.8.1.jar
├── .github
└── workflows
│ └── qodana_code_quality.yml
├── .gitlab-ci.yml
├── .gradle
├── buildOutputCleanup
│ ├── buildOutputCleanup.lock
│ ├── cache.properties
│ └── outputFiles.bin
├── checksums
│ ├── checksums.lock
│ ├── md5-checksums.bin
│ └── sha1-checksums.bin
├── configuration-cache
│ └── gc.properties
├── file-system.probe
└── vcs-1
│ └── gc.properties
├── .idea
├── .gitignore
├── .name
├── compiler.xml
├── description.html
├── encodings.xml
├── gradle.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── jarRepositories.xml
├── libraries-with-intellij-classes.xml
├── misc.xml
├── modules
│ ├── java-basics.main.iml
│ └── java-basics.test.iml
├── project-color
├── project-template.xml
├── uiDesigner.xml
└── vcs.xml
├── .qodana
└── code-coverage
│ └── result.xml
├── build.gradle
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── intellij.yaml
├── lombok.config
├── out
└── production
│ └── java-basics
│ └── simple
│ └── automation
│ └── Main.class
├── pom.xml
├── qodana.yaml
├── settings.gradle
├── src
├── main
│ ├── java
│ │ └── simple
│ │ │ └── automation
│ │ │ ├── AuthorizationTests.java
│ │ │ ├── BaseTestWithAuthorization.java
│ │ │ ├── BaseTestWithOrder.java
│ │ │ ├── Main.java
│ │ │ ├── OrderTests.java
│ │ │ ├── Roles.java
│ │ │ ├── Smoke.java
│ │ │ └── User.java
│ └── resources
│ │ ├── kuberapp
│ │ └── rest-test
│ │ │ ├── .gitignore
│ │ │ ├── Jenkinsfile
│ │ │ ├── build.gradle
│ │ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ ├── settings.gradle
│ │ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── simple
│ │ │ │ │ └── auto
│ │ │ │ │ └── resttest
│ │ │ │ │ └── RestTestApplication.java
│ │ │ └── resources
│ │ │ │ ├── application.properties
│ │ │ │ └── deploy
│ │ │ │ ├── Dockerfile
│ │ │ │ └── deploy.yml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── simple
│ │ │ └── auto
│ │ │ └── resttest
│ │ │ └── RestTestApplicationTests.java
│ │ └── reqres.postman_collection.json
└── test
│ ├── java
│ ├── rest
│ │ ├── KuberTest.java
│ │ ├── RestResponse.java
│ │ ├── RestTest.java
│ │ ├── pojos
│ │ │ ├── CreateUserResponse.java
│ │ │ ├── UserLogin.java
│ │ │ ├── UserPojo.java
│ │ │ ├── UserPojoFull.java
│ │ │ └── UserRequest.java
│ │ └── steps
│ │ │ └── UsersSteps.java
│ ├── simple
│ │ └── automation
│ │ │ └── MainTest.java
│ ├── utils
│ │ ├── DateDeserializer.java
│ │ ├── RestWrapper.java
│ │ ├── UserGenerator.java
│ │ └── services
│ │ │ ├── OrderService.java
│ │ │ ├── RestService.java
│ │ │ └── UserService.java
│ └── web
│ │ ├── WebDriverLogger.java
│ │ ├── findby
│ │ ├── JSExecutor.java
│ │ ├── RamblerTest.java
│ │ ├── WebDriverFactory.java
│ │ ├── config
│ │ │ ├── TestConfigFactory.java
│ │ │ └── WebConfig.java
│ │ ├── elements
│ │ │ ├── Button.java
│ │ │ ├── CustomElement.java
│ │ │ ├── EditBox.java
│ │ │ ├── ElementsDecorator.java
│ │ │ └── IFrame.java
│ │ ├── page
│ │ │ ├── BaseLoggedInPage.java
│ │ │ ├── BasePage.java
│ │ │ ├── LoginPage.java
│ │ │ ├── ProfilePage.java
│ │ │ └── SearchPage.java
│ │ └── tests
│ │ │ ├── BaseTest.java
│ │ │ ├── LoginTest.java
│ │ │ └── ProfileTest.java
│ │ └── simple
│ │ ├── RamblerTest.java
│ │ ├── ScreenshotExtension.java
│ │ ├── WebDriverFactory.java
│ │ ├── config
│ │ ├── TestConfigFactory.java
│ │ └── WebConfig.java
│ │ └── page
│ │ ├── BaseLoggedInPage.java
│ │ ├── BasePage.java
│ │ ├── LoginPage.java
│ │ ├── ProfilePage.java
│ │ └── SearchPage.java
│ └── resources
│ ├── META-INF
│ └── aop-ajc.xml
│ ├── UsersSchema.json
│ ├── UsersTemplate.json
│ ├── categories.json
│ ├── chromedriver
│ ├── chromedriver.exe
│ ├── chromedriver_linux
│ ├── junit-platform.properties
│ └── test.conf
└── target
├── allure-results
├── 146deca5-461c-4486-a926-0984effc622d-result.json
├── 1c2642d6-770d-48d6-964f-ea8921f0a6ab-container.json
├── 381dcd85-c5fb-4a58-a83b-87fcd4428071-result.json
├── 57af8b43-56c8-4333-96eb-b35d50ec6343-container.json
├── 6aeec390-7f46-4f8b-8ce9-9c1aa08dfe80-container.json
└── 7b4aaf4d-b2cf-4c69-b134-749dabf48da2-container.json
├── classes
├── reqres.postman_collection.json
└── simple
│ └── automation
│ ├── AuthorizationTests.class
│ ├── BaseTestWithAuthorization.class
│ ├── BaseTestWithOrder.class
│ ├── Main.class
│ ├── OrderTests$Roles.class
│ ├── OrderTests.class
│ ├── Smoke.class
│ └── User.class
├── java-basics-1.0-SNAPSHOT.jar
├── maven-archiver
└── pom.properties
├── maven-status
└── maven-compiler-plugin
│ ├── compile
│ └── default-compile
│ │ ├── createdFiles.lst
│ │ └── inputFiles.lst
│ └── testCompile
│ └── default-testCompile
│ ├── createdFiles.lst
│ └── inputFiles.lst
├── site
└── allure-maven-plugin
│ └── allure-maven.html
├── surefire-reports
├── 2022-01-16T23-46-31_993-jvmRun1.dumpstream
├── 2022-01-16T23-46-31_993.dumpstream
├── 2022-01-16T23-47-37_768.dumpstream
├── 2022-01-16T23-48-02_812.dumpstream
├── 2022-01-16T23-49-03_206.dumpstream
├── 2022-01-16T23-51-27_414.dumpstream
├── 2022-05-21T21-37-14_987.dumpstream
├── TEST-rest.RestTest.xml
├── TEST-web.findby.RamblerTest.xml
├── TEST-web.findby.tests.LoginTest.xml
├── TEST-web.findby.tests.ProfileTest.xml
├── TEST-web.simple.RamblerTest.xml
├── rest.RestTest.txt
├── web.findby.RamblerTest.txt
├── web.findby.tests.LoginTest.txt
├── web.findby.tests.ProfileTest.txt
└── web.simple.RamblerTest.txt
└── test-classes
├── META-INF
└── aop-ajc.xml
├── categories.json
├── chromedriver
├── chromedriver.exe
├── chromedriver_linux
├── junit-platform.properties
├── rest
├── DontWorryTest.class
├── RestTest.class
├── pojos
│ ├── CreateUserResponse.class
│ ├── UserLogin.class
│ ├── UserPojo.class
│ ├── UserPojoFull.class
│ ├── UserRequest$UserRequestBuilder.class
│ └── UserRequest.class
└── steps
│ └── UsersSteps.class
├── test.conf
├── utils
├── DateDeserializer.class
├── RestWrapper.class
├── UserGenerator.class
└── services
│ ├── OrderService.class
│ ├── RestService.class
│ └── UserService.class
└── web
├── WebDriverLogger.class
├── findby
├── JSExecutor.class
├── RamblerTest.class
├── WebDriverFactory$1.class
├── WebDriverFactory$Browser.class
├── WebDriverFactory.class
├── config
│ ├── TestConfigFactory.class
│ └── WebConfig.class
├── elements
│ ├── Button.class
│ ├── CustomElement.class
│ ├── EditBox.class
│ ├── ElementsDecorator.class
│ └── IFrame.class
├── page
│ ├── BaseLoggedInPage.class
│ ├── BasePage.class
│ ├── LoginPage.class
│ ├── ProfilePage.class
│ └── SearchPage.class
└── tests
│ ├── BaseTest.class
│ ├── LoginTest.class
│ └── ProfileTest.class
└── simple
├── RamblerTest.class
├── ScreenshotExtension.class
├── WebDriverFactory$1.class
├── WebDriverFactory$Browser.class
├── WebDriverFactory.class
├── config
├── TestConfigFactory.class
└── WebConfig.class
└── page
├── BaseLoggedInPage.class
├── BasePage.class
├── LoginPage.class
├── ProfilePage.class
└── SearchPage.class
/11:
--------------------------------------------------------------------------------
1 | 18
2 | 1
3 | 2
4 |
--------------------------------------------------------------------------------
/321:
--------------------------------------------------------------------------------
1 | 12
2 | 2
3 |
4 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/bin/allure:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | ##############################################################################
4 | ##
5 | ## allure start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Attempt to set APP_HOME
10 | # Resolve links: $0 may be a link
11 | PRG="$0"
12 | # Need this for relative symlinks.
13 | while [ -h "$PRG" ] ; do
14 | ls=`ls -ld "$PRG"`
15 | link=`expr "$ls" : '.*-> \(.*\)$'`
16 | if expr "$link" : '/.*' > /dev/null; then
17 | PRG="$link"
18 | else
19 | PRG=`dirname "$PRG"`"/$link"
20 | fi
21 | done
22 | SAVED="`pwd`"
23 | cd "`dirname \"$PRG\"`/.." >/dev/null
24 | export APP_HOME="`pwd -P`"
25 | cd "$SAVED" >/dev/null
26 |
27 | APP_NAME="allure"
28 | APP_BASE_NAME=`basename "$0"`
29 |
30 | # Add default JVM options here. You can also use JAVA_OPTS and ALLURE_OPTS to pass JVM options to this script.
31 | DEFAULT_JVM_OPTS=""
32 |
33 | # Use the maximum available, or set MAX_FD != -1 to use that value.
34 | MAX_FD="maximum"
35 |
36 | warn () {
37 | echo "$*"
38 | }
39 |
40 | die () {
41 | echo
42 | echo "$*"
43 | echo
44 | exit 1
45 | }
46 |
47 | # OS specific support (must be 'true' or 'false').
48 | cygwin=false
49 | msys=false
50 | darwin=false
51 | nonstop=false
52 | case "`uname`" in
53 | CYGWIN* )
54 | cygwin=true
55 | ;;
56 | Darwin* )
57 | darwin=true
58 | ;;
59 | MINGW* )
60 | msys=true
61 | ;;
62 | NONSTOP* )
63 | nonstop=true
64 | ;;
65 | esac
66 |
67 | CLASSPATH=$APP_HOME/lib/allure-commandline-2.8.1.jar:$APP_HOME/lib/allure-generator-2.8.1.jar:$APP_HOME/lib/jcommander-1.72.jar:$APP_HOME/lib/jetty-server-9.4.11.v20180605.jar:$APP_HOME/lib/slf4j-log4j12-1.7.25.jar:$APP_HOME/lib/jackson-dataformat-xml-2.9.6.jar:$APP_HOME/lib/allure-plugin-api-2.8.1.jar:$APP_HOME/lib/jackson-dataformat-yaml-2.9.6.jar:$APP_HOME/lib/commons-io-2.6.jar:$APP_HOME/lib/allure2-model-api-1.0.0.jar:$APP_HOME/lib/allure1-model-1.0.jar:$APP_HOME/lib/httpclient-4.5.6.jar:$APP_HOME/lib/allure2-model-jackson-1.0.0.jar:$APP_HOME/lib/allure2-model-pojo-1.0.0.jar:$APP_HOME/lib/tika-core-1.18.jar:$APP_HOME/lib/javax.servlet-api-3.1.0.jar:$APP_HOME/lib/jetty-http-9.4.11.v20180605.jar:$APP_HOME/lib/jetty-io-9.4.11.v20180605.jar:$APP_HOME/lib/slf4j-api-1.7.25.jar:$APP_HOME/lib/log4j-1.2.17.jar:$APP_HOME/lib/jackson-module-jaxb-annotations-2.9.6.jar:$APP_HOME/lib/jackson-databind-2.9.6.jar:$APP_HOME/lib/jackson-core-2.9.6.jar:$APP_HOME/lib/jackson-annotations-2.9.0.jar:$APP_HOME/lib/woodstox-core-5.0.3.jar:$APP_HOME/lib/stax2-api-3.1.4.jar:$APP_HOME/lib/opencsv-4.2.jar:$APP_HOME/lib/flexmark-0.34.8.jar:$APP_HOME/lib/jaxb-api-2.3.0.jar:$APP_HOME/lib/freemarker-2.3.28.jar:$APP_HOME/lib/snakeyaml-1.18.jar:$APP_HOME/lib/properties-2.0.RC5.jar:$APP_HOME/lib/jaxb-utils-1.0.jar:$APP_HOME/lib/httpcore-4.4.10.jar:$APP_HOME/lib/commons-beanutils-1.9.3.jar:$APP_HOME/lib/commons-logging-1.2.jar:$APP_HOME/lib/commons-codec-1.10.jar:$APP_HOME/lib/jetty-util-9.4.11.v20180605.jar:$APP_HOME/lib/commons-text-1.4.jar:$APP_HOME/lib/commons-lang3-3.7.jar:$APP_HOME/lib/commons-collections4-4.1.jar:$APP_HOME/lib/flexmark-util-0.34.8.jar:$APP_HOME/lib/commons-collections-3.2.2.jar:$APP_HOME/lib/config
68 |
69 | # Determine the Java command to use to start the JVM.
70 | if [ -n "$JAVA_HOME" ] ; then
71 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
72 | # IBM's JDK on AIX uses strange locations for the executables
73 | JAVACMD="$JAVA_HOME/jre/sh/java"
74 | else
75 | JAVACMD="$JAVA_HOME/bin/java"
76 | fi
77 | if [ ! -x "$JAVACMD" ] ; then
78 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
79 |
80 | Please set the JAVA_HOME variable in your environment to match the
81 | location of your Java installation."
82 | fi
83 | else
84 | JAVACMD="java"
85 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
86 |
87 | Please set the JAVA_HOME variable in your environment to match the
88 | location of your Java installation."
89 | fi
90 |
91 | # Increase the maximum file descriptors if we can.
92 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
93 | MAX_FD_LIMIT=`ulimit -H -n`
94 | if [ $? -eq 0 ] ; then
95 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
96 | MAX_FD="$MAX_FD_LIMIT"
97 | fi
98 | ulimit -n $MAX_FD
99 | if [ $? -ne 0 ] ; then
100 | warn "Could not set maximum file descriptor limit: $MAX_FD"
101 | fi
102 | else
103 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
104 | fi
105 | fi
106 |
107 | # For Darwin, add options to specify how the application appears in the dock
108 | if $darwin; then
109 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110 | fi
111 |
112 | # For Cygwin, switch paths to Windows format before running java
113 | if $cygwin ; then
114 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
115 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
116 | JAVACMD=`cygpath --unix "$JAVACMD"`
117 |
118 | # We build the pattern for arguments to be converted via cygpath
119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120 | SEP=""
121 | for dir in $ROOTDIRSRAW ; do
122 | ROOTDIRS="$ROOTDIRS$SEP$dir"
123 | SEP="|"
124 | done
125 | OURCYGPATTERN="(^($ROOTDIRS))"
126 | # Add a user-defined pattern to the cygpath arguments
127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129 | fi
130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
131 | i=0
132 | for arg in "$@" ; do
133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
135 |
136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138 | else
139 | eval `echo args$i`="\"$arg\""
140 | fi
141 | i=$((i+1))
142 | done
143 | case $i in
144 | (0) set -- ;;
145 | (1) set -- "$args0" ;;
146 | (2) set -- "$args0" "$args1" ;;
147 | (3) set -- "$args0" "$args1" "$args2" ;;
148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154 | esac
155 | fi
156 |
157 | # Escape application args
158 | save () {
159 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
160 | echo " "
161 | }
162 | APP_ARGS=$(save "$@")
163 |
164 | # Collect all arguments for the java command, following the shell quoting and substitution rules
165 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $ALLURE_OPTS -classpath "\"$CLASSPATH\"" io.qameta.allure.CommandLine "$APP_ARGS"
166 |
167 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
168 | if [ "" ] && [ "$HOME" = "$PWD" ]; then
169 | cd "$(dirname "$0")"
170 | fi
171 |
172 | exec "$JAVACMD" "$@"
173 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/bin/allure.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem allure startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%..
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and ALLURE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS=
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\lib\allure-commandline-2.8.1.jar;%APP_HOME%\lib\allure-generator-2.8.1.jar;%APP_HOME%\lib\jcommander-1.72.jar;%APP_HOME%\lib\jetty-server-9.4.11.v20180605.jar;%APP_HOME%\lib\slf4j-log4j12-1.7.25.jar;%APP_HOME%\lib\jackson-dataformat-xml-2.9.6.jar;%APP_HOME%\lib\allure-plugin-api-2.8.1.jar;%APP_HOME%\lib\jackson-dataformat-yaml-2.9.6.jar;%APP_HOME%\lib\commons-io-2.6.jar;%APP_HOME%\lib\allure2-model-api-1.0.0.jar;%APP_HOME%\lib\allure1-model-1.0.jar;%APP_HOME%\lib\httpclient-4.5.6.jar;%APP_HOME%\lib\allure2-model-jackson-1.0.0.jar;%APP_HOME%\lib\allure2-model-pojo-1.0.0.jar;%APP_HOME%\lib\tika-core-1.18.jar;%APP_HOME%\lib\javax.servlet-api-3.1.0.jar;%APP_HOME%\lib\jetty-http-9.4.11.v20180605.jar;%APP_HOME%\lib\jetty-io-9.4.11.v20180605.jar;%APP_HOME%\lib\slf4j-api-1.7.25.jar;%APP_HOME%\lib\log4j-1.2.17.jar;%APP_HOME%\lib\jackson-module-jaxb-annotations-2.9.6.jar;%APP_HOME%\lib\jackson-databind-2.9.6.jar;%APP_HOME%\lib\jackson-core-2.9.6.jar;%APP_HOME%\lib\jackson-annotations-2.9.0.jar;%APP_HOME%\lib\woodstox-core-5.0.3.jar;%APP_HOME%\lib\stax2-api-3.1.4.jar;%APP_HOME%\lib\opencsv-4.2.jar;%APP_HOME%\lib\flexmark-0.34.8.jar;%APP_HOME%\lib\jaxb-api-2.3.0.jar;%APP_HOME%\lib\freemarker-2.3.28.jar;%APP_HOME%\lib\snakeyaml-1.18.jar;%APP_HOME%\lib\properties-2.0.RC5.jar;%APP_HOME%\lib\jaxb-utils-1.0.jar;%APP_HOME%\lib\httpcore-4.4.10.jar;%APP_HOME%\lib\commons-beanutils-1.9.3.jar;%APP_HOME%\lib\commons-logging-1.2.jar;%APP_HOME%\lib\commons-codec-1.10.jar;%APP_HOME%\lib\jetty-util-9.4.11.v20180605.jar;%APP_HOME%\lib\commons-text-1.4.jar;%APP_HOME%\lib\commons-lang3-3.7.jar;%APP_HOME%\lib\commons-collections4-4.1.jar;%APP_HOME%\lib\flexmark-util-0.34.8.jar;%APP_HOME%\lib\commons-collections-3.2.2.jar;%APP_HOME%\lib\config
67 |
68 | @rem Execute allure
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %ALLURE_OPTS% -classpath "%CLASSPATH%" io.qameta.allure.CommandLine %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable ALLURE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%ALLURE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/config/allure-cucumber.yml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/config/allure-cucumber.yml
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/config/allure-junit.yml:
--------------------------------------------------------------------------------
1 | plugins:
2 | - junit-plugin
3 | - packages-plugin
4 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/config/allure.yml:
--------------------------------------------------------------------------------
1 | plugins:
2 | - junit-xml-plugin
3 | - xunit-xml-plugin
4 | - trx-plugin
5 | - behaviors-plugin
6 | - packages-plugin
7 | - screen-diff-plugin
8 | - xctest-plugin
9 | - jira-plugin
10 | - xray-plugin
11 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/allure-commandline-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/allure-commandline-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/allure-generator-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/allure-generator-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/allure-plugin-api-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/allure-plugin-api-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/allure1-model-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/allure1-model-1.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/allure2-model-api-1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/allure2-model-api-1.0.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/allure2-model-jackson-1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/allure2-model-jackson-1.0.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/allure2-model-pojo-1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/allure2-model-pojo-1.0.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/commons-beanutils-1.9.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/commons-beanutils-1.9.3.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/commons-codec-1.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/commons-codec-1.10.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/commons-collections-3.2.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/commons-collections-3.2.2.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/commons-collections4-4.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/commons-collections4-4.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/commons-io-2.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/commons-io-2.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/commons-lang3-3.7.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/commons-lang3-3.7.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/commons-logging-1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/commons-logging-1.2.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/commons-text-1.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/commons-text-1.4.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/config/jetty-logging.properties:
--------------------------------------------------------------------------------
1 | org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.LoggerLog
2 | org.eclipse.jetty.LEVEL=WARN
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/config/log4j.properties:
--------------------------------------------------------------------------------
1 | log4j.rootLogger=INFO, stdout
2 |
3 | log4j.appender.stdout = org.apache.log4j.ConsoleAppender
4 | log4j.appender.stdout.Target=System.out
5 | log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
6 | log4j.appender.stdout.layout.ConversionPattern=%m%n
7 |
8 | log4j.logger.org.mortbay.log = INFO
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/flexmark-0.34.8.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/flexmark-0.34.8.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/flexmark-util-0.34.8.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/flexmark-util-0.34.8.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/freemarker-2.3.28.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/freemarker-2.3.28.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/httpclient-4.5.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/httpclient-4.5.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/httpcore-4.4.10.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/httpcore-4.4.10.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jackson-annotations-2.9.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jackson-annotations-2.9.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jackson-core-2.9.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jackson-core-2.9.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jackson-databind-2.9.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jackson-databind-2.9.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jackson-dataformat-xml-2.9.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jackson-dataformat-xml-2.9.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jackson-dataformat-yaml-2.9.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jackson-dataformat-yaml-2.9.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jackson-module-jaxb-annotations-2.9.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jackson-module-jaxb-annotations-2.9.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/javax.servlet-api-3.1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/javax.servlet-api-3.1.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jaxb-api-2.3.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jaxb-api-2.3.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jaxb-utils-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jaxb-utils-1.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jcommander-1.72.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jcommander-1.72.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jetty-http-9.4.11.v20180605.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jetty-http-9.4.11.v20180605.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jetty-io-9.4.11.v20180605.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jetty-io-9.4.11.v20180605.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jetty-server-9.4.11.v20180605.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jetty-server-9.4.11.v20180605.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/jetty-util-9.4.11.v20180605.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/jetty-util-9.4.11.v20180605.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/log4j-1.2.17.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/log4j-1.2.17.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/opencsv-4.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/opencsv-4.2.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/properties-2.0.RC5.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/properties-2.0.RC5.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/slf4j-api-1.7.25.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/slf4j-api-1.7.25.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/slf4j-log4j12-1.7.25.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/slf4j-log4j12-1.7.25.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/snakeyaml-1.18.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/snakeyaml-1.18.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/stax2-api-3.1.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/stax2-api-3.1.4.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/tika-core-1.18.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/tika-core-1.18.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/lib/woodstox-core-5.0.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/lib/woodstox-core-5.0.3.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/README.txt:
--------------------------------------------------------------------------------
1 | The directory with Allure plugins. To add the plugin simply unpack it to this folder.
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/behaviors-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: behaviors
2 | name: Behaviors aggregator
3 | description: The aggregator adds behaviors tab to the report
4 | extensions:
5 | - io.qameta.allure.behaviors.BehaviorsPlugin
6 | jsFiles:
7 | - index.js
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/behaviors-plugin/plugin.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/behaviors-plugin/plugin.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/behaviors-plugin/static/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | allure.api.addTranslation('en', {
4 | tab: {
5 | behaviors: {
6 | name: 'Behaviors'
7 | }
8 | },
9 | widget: {
10 | behaviors: {
11 | name: 'Features by stories',
12 | showAll: 'show all'
13 | }
14 | }
15 | });
16 |
17 | allure.api.addTranslation('ru', {
18 | tab: {
19 | behaviors: {
20 | name: 'Функциональность'
21 | }
22 | },
23 | widget: {
24 | behaviors: {
25 | name: 'Функциональность',
26 | showAll: 'показать все'
27 | }
28 | }
29 | });
30 |
31 | allure.api.addTranslation('zh', {
32 | tab: {
33 | behaviors: {
34 | name: '功能'
35 | }
36 | },
37 | widget: {
38 | behaviors: {
39 | name: '特性场景',
40 | showAll: '显示所有'
41 | }
42 | }
43 | });
44 |
45 | allure.api.addTranslation('de', {
46 | tab: {
47 | behaviors: {
48 | name: 'Verhalten'
49 | }
50 | },
51 | widget: {
52 | behaviors: {
53 | name: 'Features nach Stories',
54 | showAll: 'Zeige alle'
55 | }
56 | }
57 | });
58 |
59 | allure.api.addTranslation('he', {
60 | tab: {
61 | behaviors: {
62 | name: 'התנהגויות'
63 | }
64 | },
65 | widget: {
66 | behaviors: {
67 | name: 'תכונות לפי סיפורי משתמש',
68 | showAll: 'הצג הכול'
69 | }
70 | }
71 | });
72 |
73 | allure.api.addTranslation('br', {
74 | tab: {
75 | behaviors: {
76 | name: 'Comportamentos'
77 | }
78 | },
79 | widget: {
80 | behaviors: {
81 | name: 'Funcionalidades por história',
82 | showAll: 'Mostrar tudo'
83 | }
84 | }
85 | });
86 |
87 | allure.api.addTab('behaviors', {
88 | title: 'tab.behaviors.name', icon: 'fa fa-list',
89 | route: 'behaviors(/)(:testGroup)(/)(:testResult)(/)(:testResultTab)(/)',
90 | onEnter: (function (testGroup, testResult, testResultTab) {
91 | return new allure.components.TreeLayout({
92 | testGroup: testGroup,
93 | testResult: testResult,
94 | testResultTab: testResultTab,
95 | tabName: 'tab.behaviors.name',
96 | baseUrl: 'behaviors',
97 | url: 'data/behaviors.json',
98 | csvUrl: 'data/behaviors.csv'
99 | });
100 | })
101 | });
102 |
103 | allure.api.addWidget('widgets', 'behaviors', allure.components.WidgetStatusView.extend({
104 | rowTag: 'a',
105 | title: 'widget.behaviors.name',
106 | baseUrl: 'behaviors',
107 | showLinks: true
108 | }));
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/custom-logo-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: custom-logo
2 | name: Custom logo aggregator
3 | description: The aggregator replaces default Allure logo with a custom one
4 | cssFiles:
5 | - styles.css
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/custom-logo-plugin/static/custom-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/custom-logo-plugin/static/styles.css:
--------------------------------------------------------------------------------
1 | .side-nav__brand {
2 | background: url('custom-logo.svg') no-repeat left center;
3 | margin-left: 10px;
4 | }
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: jira
2 | name: Jira Plugin
3 | description: The plugin that adds support for Jira integration.
4 | extensions:
5 | - io.qameta.allure.jira.JiraExportPlugin
6 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/jira-plugin-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/jira-plugin/jira-plugin-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/lib/allure-jira-commons-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/jira-plugin/lib/allure-jira-commons-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/lib/converter-jackson-2.4.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/jira-plugin/lib/converter-jackson-2.4.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/lib/jackson-annotations-2.9.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/jira-plugin/lib/jackson-annotations-2.9.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/lib/jackson-core-2.9.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/jira-plugin/lib/jackson-core-2.9.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/lib/jackson-databind-2.9.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/jira-plugin/lib/jackson-databind-2.9.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/lib/okhttp-3.10.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/jira-plugin/lib/okhttp-3.10.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/lib/okio-1.14.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/jira-plugin/lib/okio-1.14.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/jira-plugin/lib/retrofit-2.4.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/jira-plugin/lib/retrofit-2.4.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/junit-xml-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: junit
2 | name: JUnit Plugin
3 | description: The plugin that adds support for results in JUnit.xml data format.
4 | extensions:
5 | - io.qameta.allure.junitxml.JunitXmlPlugin
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/junit-xml-plugin/junit-xml-plugin-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/junit-xml-plugin/junit-xml-plugin-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/packages-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: packages
2 | name: Packages aggregator
3 | description: The aggregator adds packages tab to the report
4 | extensions:
5 | - io.qameta.allure.packages.PackagesPlugin
6 | jsFiles:
7 | - index.js
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/packages-plugin/plugin.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/packages-plugin/plugin.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/packages-plugin/static/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | allure.api.addTranslation('en', {
4 | tab: {
5 | packages: {
6 | name: 'Packages'
7 | }
8 | }
9 | });
10 |
11 | allure.api.addTranslation('ru', {
12 | tab: {
13 | packages: {
14 | name: 'Пакеты'
15 | }
16 | }
17 | });
18 |
19 | allure.api.addTranslation('zh', {
20 | tab: {
21 | packages: {
22 | name: '包'
23 | }
24 | }
25 | });
26 |
27 | allure.api.addTranslation('de', {
28 | tab: {
29 | packages: {
30 | name: 'Pakete'
31 | }
32 | }
33 | });
34 |
35 | allure.api.addTranslation('he', {
36 | tab: {
37 | packages: {
38 | name: 'חבילות'
39 | }
40 | }
41 | });
42 |
43 | allure.api.addTranslation('br', {
44 | tab: {
45 | packages: {
46 | name: 'Pacotes'
47 | }
48 | }
49 | });
50 |
51 | allure.api.addTab('packages', {
52 | title: 'tab.packages.name', icon: 'fa fa-align-left',
53 | route: 'packages(/)(:testGroup)(/)(:testResult)(/)(:testResultTab)(/)',
54 | onEnter: (function (testGroup, testResult, testResultTab) {
55 | return new allure.components.TreeLayout({
56 | testGroup: testGroup,
57 | testResult: testResult,
58 | testResultTab: testResultTab,
59 | tabName: 'tab.packages.name',
60 | baseUrl: 'packages',
61 | url: 'data/packages.json'
62 | });
63 | })
64 | });
65 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/screen-diff-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: screen-diff
2 | name: Screen diff
3 | description: Who cares about description by just-boris
4 | jsFiles:
5 | - index.js
6 | cssFiles:
7 | - styles.css
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/screen-diff-plugin/static/index.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | var settings = allure.getPluginSettings('screen-diff', {diffType: 'diff'});
3 |
4 | function renderImage(src) {
5 | return '
' +
6 | '
' +
7 | '
';
8 | }
9 |
10 | function renderDiffContent(type, data) {
11 | function findImage(name) {
12 | if (data.testStage && data.testStage.attachments) {
13 | return data.testStage.attachments.filter(function (attachment) {
14 | return attachment.name === name;
15 | })[0];
16 | }
17 | return null;
18 | }
19 |
20 | var diffImage = findImage('diff');
21 | var actualImage = findImage('actual');
22 | var expectedImage = findImage('expected');
23 |
24 | if (!diffImage && !actualImage && !expectedImage) {
25 | return 'Diff, actual and expected image have not been provided. ';
26 | }
27 |
28 | if (type === 'diff') {
29 | if (!diffImage) {
30 | return renderImage(actualImage.source);
31 | }
32 | return renderImage(diffImage.source);
33 | }
34 | if (type === 'overlay') {
35 | return '' +
36 | '
' +
37 | '
' +
38 | '
' +
39 | '
' +
40 | '
';
41 | }
42 | }
43 |
44 | var ScreenDiffView = Backbone.Marionette.View.extend({
45 | className: 'pane__section',
46 | events: {
47 | 'click [name="screen-diff-type"]': 'onDiffTypeChange',
48 | 'mousemove .screen-diff__overlay': 'onOverlayMove'
49 | },
50 | templateContext: function () {
51 | return {
52 | diffType: settings.get('diffType')
53 | }
54 | },
55 | template: function (data) {
56 | var testType = data.labels.filter(function (label) {
57 | return label.name === 'testType'
58 | })[0];
59 |
60 | if (!testType || testType.value !== 'screenshotDiff') {
61 | return '';
62 | }
63 |
64 | return 'Screen Diff ' +
65 | '';
72 | },
73 | adjustImageSize: function (event) {
74 | var overImage = this.$(event.target);
75 | overImage.width(overImage.width());
76 | },
77 | onRender: function () {
78 | const diffType = settings.get('diffType');
79 | this.$('[name="screen-diff-type"][value="' + diffType + '"]').prop('checked', true);
80 | if (diffType === 'overlay') {
81 | this.$('.screen-diff__image-over img').on('load', this.adjustImageSize.bind(this));
82 | }
83 | },
84 | onOverlayMove: function (event) {
85 | var pageX = event.pageX;
86 | var containerScroll = this.$('.screen-diff__container').scrollLeft();
87 | var elementX = event.currentTarget.getBoundingClientRect().left;
88 | var delta = pageX - elementX + containerScroll;
89 | this.$('.screen-diff__image-over').width(delta);
90 | },
91 | onDiffTypeChange: function (event) {
92 | settings.save('diffType', event.target.value);
93 | this.render();
94 | }
95 | });
96 | allure.api.addTestResultBlock(ScreenDiffView, {position: 'before'});
97 | })();
98 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/screen-diff-plugin/static/styles.css:
--------------------------------------------------------------------------------
1 | .screen-diff__switchers {
2 | margin-bottom: 1em;
3 | }
4 |
5 | .screen-diff__switchers label + label {
6 | margin-left: 1em;
7 | }
8 |
9 | .screen-diff__overlay {
10 | position: relative;
11 | cursor: col-resize;
12 | }
13 |
14 | .screen-diff__container {
15 | overflow-x: auto;
16 | }
17 |
18 | .screen-diff__image-over {
19 | top: 0;
20 | left: 0;
21 | bottom: 0;
22 | background: #fff;
23 | position: absolute;
24 | overflow: hidden;
25 | box-shadow: 2px 0 1px -1px #aaa;
26 | }
27 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/trx-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: trx
2 | name: XUnit TRX Plugin
3 | description: The plugin that adds support for results TRX data format.
4 | extensions:
5 | - io.qameta.allure.trx.TrxPlugin
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/trx-plugin/trx-plugin-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/trx-plugin/trx-plugin-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xctest-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: xctest
2 | name: XCTest Plugin
3 | description: The plugin that adds support for results XCTest data format.
4 | extensions:
5 | - io.qameta.allure.xctest.XcTestPlugin
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xctest-plugin/lib/xmlwise-1.2.11.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xctest-plugin/lib/xmlwise-1.2.11.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xctest-plugin/xctest-plugin-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xctest-plugin/xctest-plugin-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: xray
2 | name: Xray Plugin
3 | description: The plugin that adds support for Xray integration.
4 | extensions:
5 | - io.qameta.allure.xray.XrayTestRunExportPlugin
6 |
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/lib/allure-jira-commons-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xray-plugin/lib/allure-jira-commons-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/lib/converter-jackson-2.4.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xray-plugin/lib/converter-jackson-2.4.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/lib/jackson-annotations-2.9.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xray-plugin/lib/jackson-annotations-2.9.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/lib/jackson-core-2.9.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xray-plugin/lib/jackson-core-2.9.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/lib/jackson-databind-2.9.6.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xray-plugin/lib/jackson-databind-2.9.6.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/lib/okhttp-3.10.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xray-plugin/lib/okhttp-3.10.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/lib/okio-1.14.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xray-plugin/lib/okio-1.14.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/lib/retrofit-2.4.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xray-plugin/lib/retrofit-2.4.0.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xray-plugin/xray-plugin-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xray-plugin/xray-plugin-2.8.1.jar
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xunit-xml-plugin/allure-plugin.yml:
--------------------------------------------------------------------------------
1 | id: xunit-xml
2 | name: XUnit XML v2 Plugin
3 | description: The plugin that adds support for results in Xunit.net xml data format.
4 | extensions:
5 | - io.qameta.allure.xunitxml.XunitXmlPlugin
--------------------------------------------------------------------------------
/.allure/allure-2.8.1/plugins/xunit-xml-plugin/xunit-xml-plugin-2.8.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.allure/allure-2.8.1/plugins/xunit-xml-plugin/xunit-xml-plugin-2.8.1.jar
--------------------------------------------------------------------------------
/.github/workflows/qodana_code_quality.yml:
--------------------------------------------------------------------------------
1 | name: Qodana
2 | on:
3 | workflow_dispatch:
4 | pull_request:
5 | push:
6 | branches:
7 | - develop
8 | - master
9 | - qodana
10 | - default
11 |
12 | jobs:
13 | qodana:
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/checkout@v4
17 | with:
18 | fetch-depth: 0
19 | - name: 'Qodana Scan'
20 | uses: JetBrains/qodana-action@v2024.3.3
21 | with:
22 | # primary-cache-key: qodana-2024.3-${{ github.event.repository.default_branch }}
23 | # use-caches: ${{ (github.ref_name == github.event.repository.default_branch) && 'true' || 'false' }}
24 | args: --ide,QDJVM
25 | env:
26 | QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
27 |
--------------------------------------------------------------------------------
/.gitlab-ci.yml:
--------------------------------------------------------------------------------
1 | qodana:
2 | only:
3 | - develop
4 | - master
5 | - merge_requests
6 | image:
7 | name: jetbrains/qodana-jvm
8 | entrypoint: [""]
9 | variables:
10 | QODANA_TOKEN: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb24iOiIzam94cSIsInByb2plY3QiOiJ6RVdRYSIsInRva2VuIjoiMzFXMWEifQ.pzWQAOWoUROyv9Sv3UacNlU9UUFsVdAVXzBn3dxEvJY
11 | script:
12 | - qodana --save-report --baseline=qodana.sarif.json --results-dir=$CI_PROJECT_DIR/qodana
13 | --report-dir=$CI_PROJECT_DIR/qodana/report
14 | artifacts:
15 | paths:
16 | - qodana/report/
17 | expose_as: 'Qodana report'
--------------------------------------------------------------------------------
/.gradle/buildOutputCleanup/buildOutputCleanup.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.gradle/buildOutputCleanup/buildOutputCleanup.lock
--------------------------------------------------------------------------------
/.gradle/buildOutputCleanup/cache.properties:
--------------------------------------------------------------------------------
1 | #Thu Jul 13 13:59:16 EEST 2023
2 | gradle.version=8.2.1
3 |
--------------------------------------------------------------------------------
/.gradle/buildOutputCleanup/outputFiles.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.gradle/buildOutputCleanup/outputFiles.bin
--------------------------------------------------------------------------------
/.gradle/checksums/checksums.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.gradle/checksums/checksums.lock
--------------------------------------------------------------------------------
/.gradle/checksums/md5-checksums.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.gradle/checksums/md5-checksums.bin
--------------------------------------------------------------------------------
/.gradle/checksums/sha1-checksums.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.gradle/checksums/sha1-checksums.bin
--------------------------------------------------------------------------------
/.gradle/configuration-cache/gc.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.gradle/configuration-cache/gc.properties
--------------------------------------------------------------------------------
/.gradle/file-system.probe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.gradle/file-system.probe
--------------------------------------------------------------------------------
/.gradle/vcs-1/gc.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/.gradle/vcs-1/gc.properties
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | java-basics
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/.idea/description.html:
--------------------------------------------------------------------------------
1 | Simple Java application that includes a class with main()
method
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/jarRepositories.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/.idea/libraries-with-intellij-classes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/modules/java-basics.main.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/modules/java-basics.test.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/project-color:
--------------------------------------------------------------------------------
1 | 0
--------------------------------------------------------------------------------
/.idea/project-template.xml:
--------------------------------------------------------------------------------
1 |
2 | IJ_BASE_PACKAGE
3 |
--------------------------------------------------------------------------------
/.idea/uiDesigner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | -
6 |
7 |
8 | -
9 |
10 |
11 | -
12 |
13 |
14 | -
15 |
16 |
17 | -
18 |
19 |
20 |
21 |
22 |
23 | -
24 |
25 |
26 |
27 |
28 |
29 | -
30 |
31 |
32 |
33 |
34 |
35 | -
36 |
37 |
38 |
39 |
40 |
41 | -
42 |
43 |
44 |
45 |
46 | -
47 |
48 |
49 |
50 |
51 | -
52 |
53 |
54 |
55 |
56 | -
57 |
58 |
59 |
60 |
61 | -
62 |
63 |
64 |
65 |
66 | -
67 |
68 |
69 |
70 |
71 | -
72 |
73 |
74 | -
75 |
76 |
77 |
78 |
79 | -
80 |
81 |
82 |
83 |
84 | -
85 |
86 |
87 |
88 |
89 | -
90 |
91 |
92 |
93 |
94 | -
95 |
96 |
97 |
98 |
99 | -
100 |
101 |
102 | -
103 |
104 |
105 | -
106 |
107 |
108 | -
109 |
110 |
111 | -
112 |
113 |
114 |
115 |
116 | -
117 |
118 |
119 | -
120 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.qodana/code-coverage/result.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/241/qodana:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/241/qodana
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'java'
3 | id "io.freefair.lombok" version "8.1.0"
4 | id "io.qameta.allure" version "2.8.0"
5 | id "io.freefair.aspectj" version "5.1.1"
6 | id("org.jetbrains.kotlinx.kover") version "0.7.3"
7 | }
8 |
9 |
10 | repositories {
11 | mavenCentral()
12 | }
13 |
14 | dependencies {
15 | implementation 'org.junit.platform:junit-platform-launcher:1.7.0'
16 | implementation 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
17 | implementation 'org.junit.jupiter:junit-jupiter-params:5.7.0'
18 | implementation 'org.assertj:assertj-core:3.19.0'
19 | implementation 'com.typesafe:config:1.4.1'
20 | implementation "org.aspectj:aspectjrt:1.9.6"
21 |
22 | testImplementation 'org.assertj:assertj-core:3.11.1'
23 | testImplementation 'com.fasterxml.jackson.core:jackson-annotations:2.10.4'
24 | testImplementation 'com.fasterxml.jackson.core:jackson-core:2.10.4'
25 | testImplementation 'org.projectlombok:lombok:1.18.16'
26 | testAnnotationProcessor 'org.projectlombok:lombok:1.18.16'
27 | }
28 |
29 |
30 | test{
31 | useJUnitPlatform()
32 | enabled = false
33 | }
34 |
35 | tasks.withType(Test).configureEach {
36 | useJUnitPlatform()
37 | outputs.upToDateWhen { false }
38 | finalizedBy(tasks.koverXmlReport)
39 | }
40 |
41 | tasks.register('webtests', Test).configure(){
42 | filter{
43 | includeTestsMatching("simpleautomation.web.simple*")
44 | }
45 | }
46 |
47 | tasks.register('resttests', Test).configure(){
48 | filter{
49 | includeTestsMatching("rest*")
50 | }
51 | finalizedBy tasks.koverXmlReport
52 | }
53 |
54 | tasks.register('kubertest', Test).configure(){
55 | filter{
56 | includeTestsMatching("rest.KuberTest*")
57 | }
58 | }
59 |
60 | tasks.register('unit', Test).configure(){
61 | filter{
62 | includeTestsMatching("simple.automation.*")
63 | }
64 | }
65 |
66 | tasks.register('regress', Test){
67 | dependsOn 'resttests'
68 | dependsOn 'webtests'
69 | webtests.mustRunAfter(resttests)
70 | }
71 |
72 | //sourceSets{
73 | // tst{
74 | // java{
75 | // compileClasspath += main.output
76 | // runtimeClasspath += main.output
77 | // srcDir file('src/main/java/simpleautomation')
78 | // }
79 | // }
80 | //}
81 | //
82 | //configurations{
83 | // tstImplementation.extendsFrom(testImplementation)
84 | // tstRuntimeOnly.extendsFrom(testRuntimeOnly)
85 | //}
86 | //
87 | //tasks.register('pseudotests', Test).configure(){
88 | // testClassesDirs = sourceSets.tst.output.classesDirs
89 | // classpath = sourceSets.tst.runtimeClasspath
90 | // useJUnitPlatform{
91 | // includeTags "pseudo"
92 | // }
93 | //}
94 |
95 | def ourTask = tasks.register('grtest', customTask)
96 | ourTask.configure(){
97 | println 'from task root'
98 | testInput = "custom input"
99 | inputs
100 | doFirst {
101 | println 'from do first'
102 | }
103 | doLast {
104 | println 'from do last'
105 | }
106 | }
107 |
108 | tasks.register("2", customTask){
109 | println "from 2"
110 | }
111 |
112 | def printFiles(String header, FileCollection files) {
113 | logger.lifecycle(header)
114 | files.forEach { f -> logger.lifecycle(" -> $f") }
115 | }
116 |
117 | class customTask extends DefaultTask{
118 | @Input
119 | String testInput = "defaultInput"
120 |
121 | @TaskAction
122 | def action1(){
123 | println "custom action1 with input $testInput"
124 | }
125 | @TaskAction
126 | def action2(){
127 | println 'custom action2'
128 | }
129 | }
130 | println 'from build root'
131 |
132 | //jar {
133 | // manifest{
134 | // attributes 'Main-Class':'simpleautomation.Main'
135 | // }
136 | // from {
137 | // configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
138 | // }
139 | //}
140 |
141 | tasks.register('zipReport', Zip).configure(){
142 | archiveFileName = 'reports.zip'
143 | destinationDirectory = file("$buildDir/reports")
144 | from "$buildDir/reports/tests"
145 | }
146 |
147 | tasks.register('copyReport', Copy).configure{
148 | from file("$buildDir/reports/reports.zip")
149 | into file("out")
150 | }
151 |
152 | allure{
153 | autoconfigure = true
154 | aspectjweaver = true
155 | }
156 |
157 | configurations {
158 | testCompile
159 | }
160 |
161 | koverReport {
162 | filters {
163 | includes {
164 | classes("simple.automation.*")
165 | }
166 | }
167 | defaults {
168 | xml {
169 | onCheck = false
170 | setReportFile(layout.projectDirectory.file(".qodana/code-coverage/result.xml").asFile)
171 | }
172 | }
173 | }
174 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 |
86 | # Determine the Java command to use to start the JVM.
87 | if [ -n "$JAVA_HOME" ] ; then
88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
89 | # IBM's JDK on AIX uses strange locations for the executables
90 | JAVACMD="$JAVA_HOME/jre/sh/java"
91 | else
92 | JAVACMD="$JAVA_HOME/bin/java"
93 | fi
94 | if [ ! -x "$JAVACMD" ] ; then
95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
96 |
97 | Please set the JAVA_HOME variable in your environment to match the
98 | location of your Java installation."
99 | fi
100 | else
101 | JAVACMD="java"
102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
103 |
104 | Please set the JAVA_HOME variable in your environment to match the
105 | location of your Java installation."
106 | fi
107 |
108 | # Increase the maximum file descriptors if we can.
109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
110 | MAX_FD_LIMIT=`ulimit -H -n`
111 | if [ $? -eq 0 ] ; then
112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
113 | MAX_FD="$MAX_FD_LIMIT"
114 | fi
115 | ulimit -n $MAX_FD
116 | if [ $? -ne 0 ] ; then
117 | warn "Could not set maximum file descriptor limit: $MAX_FD"
118 | fi
119 | else
120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
121 | fi
122 | fi
123 |
124 | # For Darwin, add options to specify how the application appears in the dock
125 | if $darwin; then
126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
127 | fi
128 |
129 | # For Cygwin or MSYS, switch paths to Windows format before running java
130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133 |
134 | JAVACMD=`cygpath --unix "$JAVACMD"`
135 |
136 | # We build the pattern for arguments to be converted via cygpath
137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
138 | SEP=""
139 | for dir in $ROOTDIRSRAW ; do
140 | ROOTDIRS="$ROOTDIRS$SEP$dir"
141 | SEP="|"
142 | done
143 | OURCYGPATTERN="(^($ROOTDIRS))"
144 | # Add a user-defined pattern to the cygpath arguments
145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
147 | fi
148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
149 | i=0
150 | for arg in "$@" ; do
151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
153 |
154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
156 | else
157 | eval `echo args$i`="\"$arg\""
158 | fi
159 | i=`expr $i + 1`
160 | done
161 | case $i in
162 | 0) set -- ;;
163 | 1) set -- "$args0" ;;
164 | 2) set -- "$args0" "$args1" ;;
165 | 3) set -- "$args0" "$args1" "$args2" ;;
166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
172 | esac
173 | fi
174 |
175 | # Escape application args
176 | save () {
177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
178 | echo " "
179 | }
180 | APP_ARGS=`save "$@"`
181 |
182 | # Collect all arguments for the java command, following the shell quoting and substitution rules
183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
184 |
185 | exec "$JAVACMD" "$@"
186 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if "%ERRORLEVEL%" == "0" goto execute
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto execute
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :execute
68 | @rem Setup the command line
69 |
70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71 |
72 |
73 | @rem Execute Gradle
74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75 |
76 | :end
77 | @rem End local scope for the variables with windows NT shell
78 | if "%ERRORLEVEL%"=="0" goto mainEnd
79 |
80 | :fail
81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 | rem the _cmd.exe /c_ return code!
83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84 | exit /b 1
85 |
86 | :mainEnd
87 | if "%OS%"=="Windows_NT" endlocal
88 |
89 | :omega
90 |
--------------------------------------------------------------------------------
/intellij.yaml:
--------------------------------------------------------------------------------
1 | qodana:
2 | defaultCloudProjectId: "zEWQa"
3 | defaultCloudOrganizationId: "3joxq"
--------------------------------------------------------------------------------
/lombok.config:
--------------------------------------------------------------------------------
1 | # This file is generated by the 'io.freefair.lombok' Gradle plugin
2 | config.stopBubbling = true
3 | lombok.addLombokGeneratedAnnotation = true
4 |
--------------------------------------------------------------------------------
/out/production/java-basics/simple/automation/Main.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/out/production/java-basics/simple/automation/Main.class
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 | simple.automation
8 | java-basics
9 | 1.0-SNAPSHOT
10 |
11 |
12 | 1.7.0
13 | 5.7.0
14 | 2.14.0
15 |
16 |
17 |
18 |
19 | org.junit.platform
20 | junit-platform-launcher
21 | ${junit.platform.version}
22 |
23 |
24 | org.junit.jupiter
25 | junit-jupiter-engine
26 | ${junit.jupiter.version}
27 |
28 |
29 | org.junit.jupiter
30 | junit-jupiter-params
31 | ${junit.jupiter.version}
32 |
33 |
34 | io.rest-assured
35 | rest-assured
36 | 4.3.2
37 | test
38 |
39 |
40 | com.fasterxml.jackson.core
41 | jackson-annotations
42 | 2.10.4
43 | test
44 |
45 |
46 | com.fasterxml.jackson.core
47 | jackson-core
48 | 2.10.4
49 | test
50 |
51 |
52 | com.fasterxml.jackson.core
53 | jackson-databind
54 | 2.10.4
55 | test
56 |
57 |
58 | org.projectlombok
59 | lombok
60 | 1.18.16
61 | provided
62 |
63 |
64 | org.assertj
65 | assertj-core
66 | 3.19.0
67 |
68 |
69 | org.seleniumhq.selenium
70 | selenium-java
71 | 4.0.0-beta-1
72 |
73 |
74 | com.typesafe
75 | config
76 | 1.4.1
77 |
78 |
79 | io.qameta.allure
80 | allure-junit5
81 | ${allure.version}
82 | test
83 |
84 |
85 | io.qameta.allure
86 | allure-rest-assured
87 | ${allure.version}
88 | test
89 |
90 |
91 | io.qameta.allure
92 | allure-assertj
93 | ${allure.version}
94 | test
95 |
96 |
97 | org.aspectj
98 | aspectjweaver
99 | 1.9.6
100 |
101 |
102 |
103 |
104 |
105 |
106 | org.apache.maven.plugins
107 | maven-resources-plugin
108 | 3.2.0
109 |
110 |
111 | org.apache.maven.plugins
112 | maven-compiler-plugin
113 | 3.8.1
114 |
115 | 8
116 | 8
117 |
118 |
119 |
120 | org.apache.maven.plugins
121 | maven-surefire-plugin
122 | 2.22.2
123 |
124 |
125 | org.apache.maven.plugins
126 | maven-failsafe-plugin
127 | 2.22.2
128 |
129 |
130 |
131 | */**
132 |
133 | false
134 |
135 | -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar"
136 |
137 |
138 |
139 | junit.jupiter.extensions.autodetection.enabled
140 | true
141 |
142 |
143 |
144 | target/allure-results
145 |
146 |
147 |
148 |
149 | org.aspectj
150 | aspectjweaver
151 | 1.9.6
152 |
153 |
154 |
155 |
156 | io.qameta.allure
157 | allure-maven
158 | 2.10.0
159 |
160 | https://github.com/allure-framework/allure2/releases/download/2.14.0/allure-2.14.0.zip
161 |
162 |
163 |
164 |
165 | target/classes
166 |
167 |
168 |
169 |
170 | dev
171 |
172 | localhost
173 |
174 |
175 |
176 |
--------------------------------------------------------------------------------
/qodana.yaml:
--------------------------------------------------------------------------------
1 | #-------------------------------------------------------------------------------#
2 | # Qodana analysis is configured by qodana.yaml file #
3 | # https://www.jetbrains.com/help/qodana/qodana-yaml.html #
4 | #-------------------------------------------------------------------------------#
5 | version: "1.0"
6 |
7 | #Specify inspection profile for code analysis
8 | profile:
9 | name: qodana.starter
10 |
11 | #Enable inspections
12 | include:
13 | - name: JvmCoverageInspection
14 |
15 | #Disable inspections
16 | #exclude:
17 | # - name:
18 | # paths:
19 | # -
20 |
21 | projectJDK: 1.8 (2) #(Applied in CI/CD pipeline)
22 | #Execute shell command before Qodana execution (Applied in CI/CD pipeline)
23 | #bootstrap: sh ./prepare-qodana.sh
24 |
25 | #Install IDE plugins before Qodana execution (Applied in CI/CD pipeline)
26 | #plugins:
27 | # - id: #(plugin id can be found at https://plugins.jetbrains.com)
28 |
29 | #Specify Qodana linter for analysis (Applied in CI/CD pipeline)
30 | linter: jetbrains/qodana-jvm
31 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * This file was generated by the Gradle 'init' task.
3 | */
4 |
5 | rootProject.name = 'java-basics'
6 |
--------------------------------------------------------------------------------
/src/main/java/simple/automation/AuthorizationTests.java:
--------------------------------------------------------------------------------
1 | package simple.automation;
2 |
3 | import org.junit.jupiter.api.*;
4 |
5 | @Tag("pseudo")
6 | public class AuthorizationTests extends BaseTestWithAuthorization{
7 |
8 | @Test
9 | public void testLogin(){
10 | System.out.println("check success login");
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/src/main/java/simple/automation/BaseTestWithAuthorization.java:
--------------------------------------------------------------------------------
1 | package simple.automation;
2 |
3 | public class BaseTestWithAuthorization {
4 |
5 | public BaseTestWithAuthorization(){
6 | System.out.println("login");
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/src/main/java/simple/automation/BaseTestWithOrder.java:
--------------------------------------------------------------------------------
1 | package simple.automation;
2 |
3 | public class BaseTestWithOrder extends BaseTestWithAuthorization{
4 | public BaseTestWithOrder(){
5 | System.out.println("create order");
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/src/main/java/simple/automation/Main.java:
--------------------------------------------------------------------------------
1 | package simple.automation;
2 |
3 | import java.util.*;
4 |
5 | public class Main {
6 |
7 | public static void main(String[] args) {
8 | String test = "123";
9 | List strings = Arrays.asList("два", "один", "три");
10 | String ddffd = "34";
11 | Map digestMap = new HashMap<>();
12 | digestMap.put("десять", 10);
13 | digestMap.put("два", 2);
14 | digestMap.put("три", 3);
15 |
16 | strings.forEach(str -> System.out.println(digestMap.get(str)));
17 | while (true){}
18 |
19 | }
20 |
21 |
22 | private String objectToString(T object){
23 | return String.valueOf(object);
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/src/main/java/simple/automation/OrderTests.java:
--------------------------------------------------------------------------------
1 | package simple.automation;
2 |
3 | import org.junit.jupiter.api.*;
4 | import org.junit.jupiter.params.*;
5 | import org.junit.jupiter.params.provider.*;
6 | import java.util.stream.*;
7 |
8 | import static org.junit.jupiter.params.provider.Arguments.arguments;
9 |
10 | @Smoke
11 | @Tag("pseudo")
12 | public class OrderTests {
13 |
14 | @BeforeEach
15 | public void createOrder(){
16 | System.out.println("create order");
17 | }
18 |
19 | @Test
20 | @Tag("create")
21 | public void testCreateOrder(){
22 | System.out.println("check that order was created");
23 | }
24 |
25 | @ParameterizedTest
26 | @MethodSource
27 | public void testListOrdersAsManager(Roles role, String orderType){
28 | System.out.println("");
29 | System.out.println("list orders as " + role.getDescription());
30 | System.out.println("check that is displayed orders for " + orderType);
31 | }
32 |
33 | static Stream testListOrdersAsManager(){
34 | return Stream.of(
35 | arguments(Roles.MANAGER, "orders for manager"),
36 | arguments(Roles.SENIOR_MANAGER, "orders for senior")
37 | );
38 | }
39 |
40 |
41 |
42 | @AfterEach
43 | public void deleteOrder(){
44 | System.out.println("delete order");
45 | }
46 |
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/src/main/java/simple/automation/Roles.java:
--------------------------------------------------------------------------------
1 | package simple.automation;
2 |
3 | public enum Roles{
4 | MANAGER("manager"),
5 | SENIOR_MANAGER("manager of managers"),
6 | LEAD_MANAGER("manager of manager of managers"),
7 | HARD_WORKER("just a worker");
8 |
9 | Roles(String description){
10 | this.description = description;
11 | }
12 |
13 | private String description;
14 | public String getDescription(){
15 | return description;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/java/simple/automation/Smoke.java:
--------------------------------------------------------------------------------
1 | package simple.automation;
2 |
3 | import org.junit.jupiter.api.*;
4 |
5 | import java.lang.annotation.*;
6 |
7 | @Target({ElementType.TYPE, ElementType.METHOD})
8 | @Retention(RetentionPolicy.RUNTIME)
9 | @Tag("smoke")
10 | public @interface Smoke {
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/simple/automation/User.java:
--------------------------------------------------------------------------------
1 | package simple.automation;
2 |
3 | public class User {
4 |
5 | private String login;
6 | private String password;
7 |
8 | public User(String login, String password){
9 | this.login = login;
10 | this.password = password;
11 | }
12 |
13 | public User(String login){
14 | this.login = login;
15 | }
16 |
17 | public String getLogin() {
18 | return login;
19 | }
20 |
21 | public void setLogin(String login) {
22 | this.login = login;
23 | }
24 |
25 | public String getPassword() {
26 | return password;
27 | }
28 |
29 | public void setPassword(String password) {
30 | this.password = password;
31 | }
32 |
33 | @Override
34 | public boolean equals(Object object){
35 | if(object == this) return true;
36 | if(!(object instanceof User)) return false;
37 |
38 | return ((User)object).getLogin().equals(this.getLogin());
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/.gitignore:
--------------------------------------------------------------------------------
1 | HELP.md
2 | .gradle
3 | build/
4 | !gradle/wrapper/gradle-wrapper.jar
5 | !**/src/main/**/build/
6 | !**/src/test/**/build/
7 |
8 | ### STS ###
9 | .apt_generated
10 | .classpath
11 | .factorypath
12 | .project
13 | .settings
14 | .springBeans
15 | .sts4-cache
16 | bin/
17 | !**/src/main/**/bin/
18 | !**/src/test/**/bin/
19 |
20 | ### IntelliJ IDEA ###
21 | .idea
22 | *.iws
23 | *.iml
24 | *.ipr
25 | out/
26 | !**/src/main/**/out/
27 | !**/src/test/**/out/
28 |
29 | ### NetBeans ###
30 | /nbproject/private/
31 | /nbbuild/
32 | /dist/
33 | /nbdist/
34 | /.nb-gradle/
35 |
36 | ### VS Code ###
37 | .vscode/
38 |
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/Jenkinsfile:
--------------------------------------------------------------------------------
1 | podTemplate(
2 | containers: [
3 | containerTemplate(name: 'app', image: 'rest-img:v1', command: 'java', args: '-jar app.jar')
4 | ],
5 | volumes: [
6 | hostPathVolume(hostPath: '/var/run/docker.sock', mountPath: '/var/run/docker.sock')
7 | ]
8 | ) {
9 | node(POD_LABEL) {
10 | stage('Get rest service') {
11 | container('app') {
12 | stage('Start app') {
13 | sh 'curl --retry 1000 --retry-connrefused --retry-delay 1 http://127.0.0.1:8083/dontworry'
14 | }
15 | }
16 | }
17 | stage('Run tests'){
18 | git credentialsId: 'jenkins', url: 'git@github.com:ivanovec/java-basics.git', branch: 'develop'
19 | sh './gradlew kubertest'
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'org.springframework.boot' version '2.7.3'
3 | id 'io.spring.dependency-management' version '1.0.13.RELEASE'
4 | id 'java'
5 | }
6 |
7 | group = 'simple.auto'
8 | version = '0.0.1-SNAPSHOT'
9 | sourceCompatibility = '1.8'
10 |
11 | repositories {
12 | mavenCentral()
13 | }
14 |
15 | dependencies {
16 | implementation 'org.springframework.boot:spring-boot-starter-web'
17 | testImplementation 'org.springframework.boot:spring-boot-starter-test'
18 | }
19 |
20 | tasks.named('test') {
21 | useJUnitPlatform()
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/src/main/resources/kuberapp/rest-test/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%"=="" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%"=="" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if %ERRORLEVEL% equ 0 goto execute
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto execute
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :execute
68 | @rem Setup the command line
69 |
70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71 |
72 |
73 | @rem Execute Gradle
74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75 |
76 | :end
77 | @rem End local scope for the variables with windows NT shell
78 | if %ERRORLEVEL% equ 0 goto mainEnd
79 |
80 | :fail
81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 | rem the _cmd.exe /c_ return code!
83 | set EXIT_CODE=%ERRORLEVEL%
84 | if %EXIT_CODE% equ 0 set EXIT_CODE=1
85 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
86 | exit /b %EXIT_CODE%
87 |
88 | :mainEnd
89 | if "%OS%"=="Windows_NT" endlocal
90 |
91 | :omega
92 |
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'rest-test'
2 |
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/src/main/java/simple/auto/resttest/RestTestApplication.java:
--------------------------------------------------------------------------------
1 | package simple.auto.resttest;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.web.bind.annotation.RequestMapping;
6 | import org.springframework.web.bind.annotation.RestController;
7 |
8 | import java.util.Collections;
9 |
10 | @SpringBootApplication
11 | @RestController
12 | public class RestTestApplication {
13 |
14 | @RequestMapping("/dontworry")
15 | public String happy() {
16 | return "behappy";
17 | }
18 |
19 | public static void main(String[] args) {
20 | SpringApplication app = new SpringApplication(RestTestApplication.class);
21 | app.setDefaultProperties(
22 | Collections.singletonMap("server.port", "8083")
23 | );
24 | app.run(args);
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/src/main/resources/application.properties:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/src/main/resources/deploy/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM openjdk:8-jdk-alpine
2 | ARG JAR_FILE=build/libs/*.jar
3 | RUN apk add curl
4 | COPY ${JAR_FILE} app.jar
5 | ENTRYPOINT ["java", "-jar", "/app.jar"]
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/src/main/resources/deploy/deploy.yml:
--------------------------------------------------------------------------------
1 | apiVersion: apps/v1
2 | kind: Deployment
3 | metadata:
4 | name: rest-deploy
5 | labels:
6 | apps: rest
7 | spec:
8 | replicas: 1
9 | selector:
10 | matchLabels:
11 | app: rest
12 | template:
13 | metadata:
14 | labels:
15 | app: rest
16 | spec:
17 | containers:
18 | - name: rest
19 | image: rest-img:v1
20 | ports:
21 | - containerPort: 8083
--------------------------------------------------------------------------------
/src/main/resources/kuberapp/rest-test/src/test/java/simple/auto/resttest/RestTestApplicationTests.java:
--------------------------------------------------------------------------------
1 | package simple.auto.resttest;
2 |
3 | import org.junit.jupiter.api.Test;
4 | import org.springframework.boot.test.context.SpringBootTest;
5 |
6 | @SpringBootTest
7 | class RestTestApplicationTests {
8 |
9 | @Test
10 | void contextLoads() {
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/src/main/resources/reqres.postman_collection.json:
--------------------------------------------------------------------------------
1 | {
2 | "info": {
3 | "_postman_id": "8f009e7c-857a-49d7-bd7c-d33181511a0a",
4 | "name": "reqres",
5 | "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
6 | },
7 | "item": [
8 | {
9 | "name": "Get Users",
10 | "request": {
11 | "method": "GET",
12 | "header": [],
13 | "url": {
14 | "raw": "https://reqres.in/api/users",
15 | "protocol": "https",
16 | "host": [
17 | "reqres",
18 | "in"
19 | ],
20 | "path": [
21 | "api",
22 | "users"
23 | ]
24 | }
25 | },
26 | "response": []
27 | },
28 | {
29 | "name": "Get User",
30 | "protocolProfileBehavior": {
31 | "disableBodyPruning": true
32 | },
33 | "request": {
34 | "method": "GET",
35 | "header": [],
36 | "body": {
37 | "mode": "raw",
38 | "raw": "",
39 | "options": {
40 | "raw": {
41 | "language": "json"
42 | }
43 | }
44 | },
45 | "url": {
46 | "raw": "https://reqres.in/api/users/2",
47 | "protocol": "https",
48 | "host": [
49 | "reqres",
50 | "in"
51 | ],
52 | "path": [
53 | "api",
54 | "users",
55 | "2"
56 | ]
57 | }
58 | },
59 | "response": []
60 | },
61 | {
62 | "name": "Create User",
63 | "request": {
64 | "method": "POST",
65 | "header": [],
66 | "body": {
67 | "mode": "raw",
68 | "raw": "{\n \"name\": \"simple\",\n \"job\": \"automation\"\n}",
69 | "options": {
70 | "raw": {
71 | "language": "json"
72 | }
73 | }
74 | },
75 | "url": {
76 | "raw": "https://reqres.in/api/users",
77 | "protocol": "https",
78 | "host": [
79 | "reqres",
80 | "in"
81 | ],
82 | "path": [
83 | "api",
84 | "users"
85 | ]
86 | }
87 | },
88 | "response": []
89 | },
90 | {
91 | "name": "Login",
92 | "request": {
93 | "method": "POST",
94 | "header": [],
95 | "body": {
96 | "mode": "raw",
97 | "raw": "{\n \"email\": \"eve.holt@reqres.in\",\n \"password\": \"cityslicka\"\n}",
98 | "options": {
99 | "raw": {
100 | "language": "json"
101 | }
102 | }
103 | },
104 | "url": {
105 | "raw": "https://reqres.in/api/login",
106 | "protocol": "https",
107 | "host": [
108 | "reqres",
109 | "in"
110 | ],
111 | "path": [
112 | "api",
113 | "login"
114 | ]
115 | }
116 | },
117 | "response": []
118 | }
119 | ],
120 | "protocolProfileBehavior": {}
121 | }
--------------------------------------------------------------------------------
/src/test/java/rest/KuberTest.java:
--------------------------------------------------------------------------------
1 | package rest;
2 |
3 | import org.junit.jupiter.api.Test;
4 |
5 | import static io.restassured.RestAssured.given;
6 | import static org.hamcrest.Matchers.equalTo;
7 |
8 | public class KuberTest {
9 |
10 | // @Test
11 | // public void testHappiness() {
12 | // given().baseUri("http://localhost:8083")
13 | // .when().get("/dontworry")
14 | // .then().body(equalTo("behappy"));
15 | // }
16 | }
17 |
--------------------------------------------------------------------------------
/src/test/java/rest/RestResponse.java:
--------------------------------------------------------------------------------
1 | package rest;
2 |
3 | import io.restassured.module.jsv.JsonSchemaValidator;
4 | import io.restassured.response.Response;
5 | import io.restassured.response.ValidatableResponse;
6 |
7 | import java.util.function.Function;
8 |
9 | public class RestResponse {
10 | private Response response;
11 | private Function extractor;
12 |
13 | public RestResponse(Response response, Function extractor){
14 | this.response = response;
15 | this.extractor = extractor;
16 | }
17 |
18 | public void validate(String schemaPath){
19 | response.then().assertThat().body(JsonSchemaValidator.matchesJsonSchemaInClasspath(schemaPath));
20 | }
21 |
22 | public T extract(){
23 | return extractor.apply(response);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/test/java/rest/RestTest.java:
--------------------------------------------------------------------------------
1 | package rest;
2 |
3 | import io.qameta.allure.Description;
4 | import io.qameta.allure.Feature;
5 | import io.qameta.allure.Story;
6 | import io.restassured.http.ContentType;
7 | import io.restassured.module.jsv.JsonSchemaValidator;
8 | import org.junit.jupiter.api.BeforeAll;
9 | import org.junit.jupiter.api.DisplayName;
10 | import org.junit.jupiter.api.Tag;
11 | import org.junit.jupiter.api.Test;
12 | import rest.pojos.UserRequest;
13 | import rest.pojos.CreateUserResponse;
14 | import rest.pojos.UserPojoFull;
15 | import utils.RestWrapper;
16 | import utils.UserGenerator;
17 |
18 | import java.util.List;
19 |
20 | import static io.restassured.RestAssured.given;
21 | import static org.assertj.core.api.Assertions.assertThat;
22 | import static org.hamcrest.Matchers.isA;
23 |
24 | @DisplayName("Тесты работы с API клиента")
25 | @Feature("Api for users")
26 | @Tag("rest")
27 | public class RestTest {
28 |
29 | private static RestWrapper api;
30 |
31 | @BeforeAll
32 | public static void prepareClient(){
33 | api = RestWrapper.loginAs("eve.holt@reqres.in", "cityslicka");
34 | }
35 |
36 | @Test
37 | @DisplayName("Получение пользователей")
38 | @Story("List all users")
39 | public void getUsers(){
40 | RestResponse> usersResponse = api.user.getUsers();
41 | usersResponse.validate("UsersTemplate.json");
42 | assertThat(usersResponse.extract()).extracting(UserPojoFull::getEmail).contains("george.bluth@reqres.in");
43 | }
44 |
45 | @DisplayName("Создание пользователя")
46 | @Story("Create user")
47 | @Description("Проверяет отправку запроса на создлание пользователя и что в системе создался юзер с указанным именем")
48 | @Test public void createUser(){
49 | UserRequest rq = UserGenerator.getSimpleUser();
50 | CreateUserResponse rs = api.user.createUser(rq);
51 |
52 | assertThat(rs)
53 | .isNotNull()
54 | .extracting(CreateUserResponse::getName)
55 | .isEqualTo(rq.getName());
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/test/java/rest/pojos/CreateUserResponse.java:
--------------------------------------------------------------------------------
1 | package rest.pojos;
2 |
3 | import com.fasterxml.jackson.annotation.JsonFormat;
4 | import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
5 | import lombok.Data;
6 | import utils.DateDeserializer;
7 |
8 | import java.time.LocalDateTime;
9 |
10 | @Data
11 | public class CreateUserResponse extends UserRequest{
12 | private int id;
13 | @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'hh:mm:ss.SSSZ")
14 | @JsonDeserialize(using = DateDeserializer.class)
15 | private LocalDateTime createdAt;
16 | }
17 |
--------------------------------------------------------------------------------
/src/test/java/rest/pojos/UserLogin.java:
--------------------------------------------------------------------------------
1 | package rest.pojos;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 |
6 | @Data
7 | @AllArgsConstructor
8 | public class UserLogin {
9 | String email;
10 | String password;
11 | }
12 |
--------------------------------------------------------------------------------
/src/test/java/rest/pojos/UserPojo.java:
--------------------------------------------------------------------------------
1 | package rest.pojos;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 |
5 | @JsonIgnoreProperties(ignoreUnknown = true)
6 | public class UserPojo {
7 | public int getId() {
8 | return id;
9 | }
10 |
11 | public void setId(int id) {
12 | this.id = id;
13 | }
14 |
15 | public String getEmail() {
16 | return email;
17 | }
18 |
19 | public void setEmail(String email) {
20 | this.email = email;
21 | }
22 |
23 | private int id;
24 | private String email;
25 | }
26 |
--------------------------------------------------------------------------------
/src/test/java/rest/pojos/UserPojoFull.java:
--------------------------------------------------------------------------------
1 | package rest.pojos;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 |
5 | @JsonIgnoreProperties(ignoreUnknown = true)
6 | public class UserPojoFull {
7 | public int getId() {
8 | return id;
9 | }
10 |
11 | public void setId(int id) {
12 | this.id = id;
13 | }
14 |
15 | public String getEmail() {
16 | return email;
17 | }
18 |
19 | public void setEmail(String email) {
20 | this.email = email;
21 | }
22 |
23 | private int id;
24 | private String email;
25 | }
26 |
--------------------------------------------------------------------------------
/src/test/java/rest/pojos/UserRequest.java:
--------------------------------------------------------------------------------
1 | package rest.pojos;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Builder;
5 | import lombok.Data;
6 | import lombok.NoArgsConstructor;
7 |
8 | @Data
9 | @Builder
10 | @NoArgsConstructor @AllArgsConstructor
11 | public class UserRequest {
12 | private String name;
13 | private String job;
14 | }
15 |
--------------------------------------------------------------------------------
/src/test/java/rest/steps/UsersSteps.java:
--------------------------------------------------------------------------------
1 | package rest.steps;
2 |
3 | import io.qameta.allure.restassured.AllureRestAssured;
4 | import io.restassured.builder.RequestSpecBuilder;
5 | import io.restassured.http.ContentType;
6 | import io.restassured.specification.RequestSpecification;
7 | import rest.pojos.UserRequest;
8 | import rest.pojos.CreateUserResponse;
9 | import rest.pojos.UserPojoFull;
10 |
11 | import java.util.List;
12 |
13 | import static io.restassured.RestAssured.given;
14 |
15 | public class UsersSteps {
16 | private static final RequestSpecification REQ_SPEC =
17 | new RequestSpecBuilder()
18 | .addFilter(new AllureRestAssured())
19 | .setBaseUri("https://reqres.in/api")
20 | .setBasePath("/users")
21 | .setContentType(ContentType.JSON)
22 | .build();
23 |
24 | private CreateUserResponse user;
25 | public CreateUserResponse createUser(UserRequest rq){
26 | user = given().spec(REQ_SPEC).body(rq).post().as(CreateUserResponse.class);
27 | return user;
28 | }
29 |
30 | public UserPojoFull getUser(){
31 | return given().spec(REQ_SPEC).get("/" + user.getId()).as(UserPojoFull.class);
32 | }
33 |
34 | public static List getUsers(){
35 | return given().spec(REQ_SPEC)
36 | .get()
37 | .jsonPath().getList("data", UserPojoFull.class);
38 | }
39 |
40 | public static UserPojoFull getUser(int id){
41 | return given().spec(REQ_SPEC).get("/" + id).as(UserPojoFull.class);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/test/java/simple/automation/MainTest.java:
--------------------------------------------------------------------------------
1 | package simple.automation;
2 |
3 | import org.junit.jupiter.api.Assertions;
4 | import org.junit.jupiter.api.Test;
5 | import org.junit.jupiter.api.BeforeAll;
6 |
7 | public class MainTest {
8 |
9 | @Test
10 | public void mainTest(){
11 | Main main = new Main();
12 | Assertions.assertTrue(true);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/test/java/utils/DateDeserializer.java:
--------------------------------------------------------------------------------
1 | package utils;
2 |
3 | import com.fasterxml.jackson.core.JsonParser;
4 | import com.fasterxml.jackson.core.JsonProcessingException;
5 | import com.fasterxml.jackson.databind.DeserializationContext;
6 | import com.fasterxml.jackson.databind.JsonDeserializer;
7 |
8 | import java.io.IOException;
9 | import java.time.LocalDateTime;
10 | import java.time.format.DateTimeFormatter;
11 |
12 | public class DateDeserializer extends JsonDeserializer {
13 | @Override
14 | public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
15 | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
16 | return LocalDateTime.parse(jsonParser.getText(), formatter);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/test/java/utils/RestWrapper.java:
--------------------------------------------------------------------------------
1 | package utils;
2 |
3 | import io.restassured.http.ContentType;
4 | import io.restassured.http.Cookies;
5 | import rest.pojos.UserLogin;
6 | import utils.services.OrderService;
7 | import utils.services.UserService;
8 |
9 | import static io.restassured.RestAssured.given;
10 |
11 | public class RestWrapper {
12 | private static final String BASE_URL = "https://reqres.in/api";
13 | private Cookies cookies;
14 |
15 | public UserService user;
16 | public OrderService order;
17 |
18 | private RestWrapper(Cookies cookies){
19 | this.cookies = cookies;
20 |
21 | user = new UserService(cookies);
22 | order = new OrderService(cookies);
23 | }
24 |
25 | public static RestWrapper loginAs(String login, String password){
26 | Cookies cookies = given()
27 | .contentType(ContentType.JSON)
28 | .baseUri(BASE_URL)
29 | .basePath("/login")
30 | .body(new UserLogin(login, password))
31 | .post()
32 | .getDetailedCookies();
33 |
34 | return new RestWrapper(cookies);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/test/java/utils/UserGenerator.java:
--------------------------------------------------------------------------------
1 | package utils;
2 |
3 | import rest.pojos.UserRequest;
4 |
5 | public class UserGenerator {
6 |
7 | public static UserRequest getSimpleUser(){
8 | return UserRequest.builder()
9 | .name("simple")
10 | .job("automation")
11 | .build();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/src/test/java/utils/services/OrderService.java:
--------------------------------------------------------------------------------
1 | package utils.services;
2 |
3 | import io.qameta.allure.Step;
4 | import io.restassured.http.Cookies;
5 | import rest.pojos.CreateUserResponse;
6 | import rest.pojos.UserPojoFull;
7 | import rest.pojos.UserRequest;
8 |
9 | import java.util.List;
10 |
11 | import static io.restassured.RestAssured.given;
12 |
13 | public class OrderService extends RestService{
14 |
15 | @Override
16 | protected String getBasePath() {
17 | return "/orders";
18 | }
19 |
20 | public OrderService(Cookies cookies) {
21 | super(cookies);
22 | }
23 |
24 | public List getOrders(){
25 | return given().spec(REQ_SPEC)
26 | .get()
27 | .jsonPath().getList("data", UserPojoFull.class);
28 | }
29 |
30 | @Step("Создание пользователя {rq.name}")
31 | public CreateUserResponse createUser(UserRequest rq){
32 | return given().spec(REQ_SPEC).body(rq).post().as(CreateUserResponse.class);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/test/java/utils/services/RestService.java:
--------------------------------------------------------------------------------
1 | package utils.services;
2 |
3 | import io.qameta.allure.restassured.AllureRestAssured;
4 | import io.restassured.builder.RequestSpecBuilder;
5 | import io.restassured.http.ContentType;
6 | import io.restassured.http.Cookies;
7 | import io.restassured.specification.RequestSpecification;
8 |
9 | public abstract class RestService {
10 | private static final String BASE_URL = "https://reqres.in/api";
11 | protected Cookies cookies;
12 | protected RequestSpecification REQ_SPEC;
13 |
14 | protected abstract String getBasePath();
15 |
16 | public RestService(Cookies cookies){
17 | this.cookies = cookies;
18 |
19 | REQ_SPEC = new RequestSpecBuilder()
20 | .addFilter(new AllureRestAssured())
21 | .addCookies(cookies)
22 | .setBaseUri(BASE_URL)
23 | .setBasePath(getBasePath())
24 | .setContentType(ContentType.JSON)
25 | .build();
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/test/java/utils/services/UserService.java:
--------------------------------------------------------------------------------
1 | package utils.services;
2 |
3 | import io.qameta.allure.Attachment;
4 | import io.qameta.allure.Step;
5 | import io.restassured.http.Cookies;
6 | import io.restassured.module.jsv.JsonSchemaValidator;
7 | import io.restassured.response.Response;
8 | import rest.RestResponse;
9 | import rest.pojos.UserRequest;
10 | import rest.pojos.CreateUserResponse;
11 | import rest.pojos.UserPojoFull;
12 |
13 | import java.util.List;
14 |
15 | import static io.restassured.RestAssured.given;
16 |
17 | public class UserService extends RestService{
18 |
19 | @Override
20 | protected String getBasePath() {
21 | return "/users";
22 | }
23 |
24 | public UserService(Cookies cookies) {
25 | super(cookies);
26 | }
27 |
28 | @Step("Создание пользователя {rq.name}")
29 | public CreateUserResponse createUser(UserRequest rq){
30 | return given().spec(REQ_SPEC).body(rq).post().as(CreateUserResponse.class);
31 | }
32 |
33 | @Step("Получение списка пользователей")
34 | @Attachment
35 | public RestResponse> getUsers(){
36 | return new RestResponse<>(
37 | given().spec(REQ_SPEC).get(),
38 | resp -> resp.body().jsonPath().getList("data", UserPojoFull.class));
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/test/java/web/WebDriverLogger.java:
--------------------------------------------------------------------------------
1 | package web;
2 |
3 | import io.qameta.allure.Allure;
4 | import io.qameta.allure.AllureLifecycle;
5 | import io.qameta.allure.model.Status;
6 | import io.qameta.allure.model.StepResult;
7 | import org.aspectj.lang.ProceedingJoinPoint;
8 | import org.aspectj.lang.annotation.Around;
9 | import org.aspectj.lang.annotation.Aspect;
10 | import org.aspectj.lang.annotation.Pointcut;
11 | import java.util.UUID;
12 |
13 | import static io.qameta.allure.util.ResultsUtils.getStatus;
14 | import static io.qameta.allure.util.ResultsUtils.getStatusDetails;
15 |
16 | @Aspect
17 | public class WebDriverLogger {
18 | private static AllureLifecycle lifecycle;
19 |
20 | public static AllureLifecycle getLifecycle(){
21 | if(lifecycle == null) lifecycle = Allure.getLifecycle();
22 | return lifecycle;
23 | }
24 |
25 | @Pointcut("call(* org.openqa.selenium.*.findElement*(..))")
26 | public void find(){}
27 | @Pointcut("call(* org.openqa.selenium.support.ui.*.until(..))")
28 | public void until(){}
29 |
30 | @Around("find()")
31 | public Object findStep(ProceedingJoinPoint joinPoint) throws Throwable {
32 | return addStep("Trying to find element ", joinPoint);
33 | }
34 |
35 | @Around("until()")
36 | public Object untilStep(ProceedingJoinPoint joinPoint) throws Throwable {
37 | return addStep("Wait until element presence ", joinPoint);
38 | }
39 |
40 | private Object addStep(String name, ProceedingJoinPoint joinPoint) throws Throwable{
41 | String uuid = UUID.randomUUID().toString();
42 | getLifecycle().startStep(uuid, new StepResult().setName(name + joinPoint.getArgs()[0]));
43 |
44 | try{
45 | Object proceed = joinPoint.proceed();
46 | getLifecycle().updateStep(uuid, s -> s.setStatus(Status.PASSED));
47 | return proceed;
48 | } catch (Throwable throwable) {
49 | getLifecycle().updateStep(uuid, s -> s
50 | .setStatus(getStatus(throwable).orElse(Status.BROKEN))
51 | .setStatusDetails(getStatusDetails(throwable).orElse(null)));
52 | throw throwable;
53 | } finally {
54 | getLifecycle().stopStep(uuid);
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/JSExecutor.java:
--------------------------------------------------------------------------------
1 | package web.findby;
2 |
3 | import org.openqa.selenium.JavascriptExecutor;
4 | import org.openqa.selenium.WebDriver;
5 | import org.openqa.selenium.WebElement;
6 |
7 | public class JSExecutor {
8 |
9 | private JavascriptExecutor executor;
10 |
11 | public JSExecutor(WebDriver driver){
12 | this.executor = (JavascriptExecutor)driver;
13 | }
14 |
15 | public void scrollTo(WebElement element){
16 | executor.executeScript("arguments[0].scrollIntoView(true);", element);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/RamblerTest.java:
--------------------------------------------------------------------------------
1 | package web.findby;
2 |
3 | import org.junit.jupiter.api.AfterEach;
4 | import org.junit.jupiter.api.Assertions;
5 | import org.junit.jupiter.api.BeforeEach;
6 | import org.junit.jupiter.api.Test;
7 | import org.openqa.selenium.WebDriver;
8 | import web.findby.page.LoginPage;
9 |
10 | public class RamblerTest {
11 |
12 | private static final String email = "simpleautomation@rambler.ru";
13 | private static final String password = "S1mpl34ut0m4ti0n";
14 | private ThreadLocal driver = new ThreadLocal<>();
15 |
16 | @BeforeEach
17 | public void createDriver(){
18 | driver.set(WebDriverFactory.getWebDriver());
19 | }
20 |
21 | @AfterEach
22 | public void disposeDriver(){
23 | if(driver.get() != null){
24 | driver.get().quit();
25 | }
26 | }
27 |
28 | @Test
29 | public void login(){
30 | Assertions.assertTrue(
31 | new LoginPage(driver.get())
32 | .loginAs(email, password)
33 | .isLoggedInAs(email)
34 | );
35 | }
36 |
37 | @Test
38 | public void openProfile(){
39 | Assertions.assertTrue(
40 | new LoginPage(driver.get())
41 | .loginAs(email, password)
42 | // .scrollToNews()
43 | .openProfile()
44 | .isProfileOpened()
45 | );
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/WebDriverFactory.java:
--------------------------------------------------------------------------------
1 | package web.findby;
2 |
3 | import com.google.common.io.Resources;
4 | import org.openqa.selenium.WebDriver;
5 | import org.openqa.selenium.chrome.ChromeDriver;
6 | import org.openqa.selenium.firefox.FirefoxDriver;
7 | import web.findby.config.TestConfigFactory;
8 |
9 | public class WebDriverFactory {
10 | private static TestConfigFactory config = TestConfigFactory.getInstance();
11 |
12 | public static WebDriver getWebDriver(){
13 | switch (config.getWebConfig().getBrowser()){
14 | case FIREFOX:
15 | return new FirefoxDriver();
16 | case CHROME:
17 | default:
18 | return getChromeDriver();
19 | }
20 | }
21 |
22 | public enum Browser{
23 | CHROME, FIREFOX
24 | }
25 |
26 | private static ChromeDriver getChromeDriver(){
27 | String chromeBinaryName;
28 |
29 | switch(System.getProperty("os.name").toLowerCase()){
30 | case "mac os x":
31 | default:
32 | chromeBinaryName = "chromedriver";
33 | break;
34 | case "windows 7":
35 | chromeBinaryName = "chromedriver.exe";
36 | break;
37 | }
38 |
39 | System.setProperty("webdriver.chrome.driver", Resources.getResource(chromeBinaryName).getPath());
40 | return new ChromeDriver();
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/config/TestConfigFactory.java:
--------------------------------------------------------------------------------
1 | package web.findby.config;
2 |
3 | import com.typesafe.config.Config;
4 | import com.typesafe.config.ConfigBeanFactory;
5 | import com.typesafe.config.ConfigFactory;
6 |
7 | public class TestConfigFactory {
8 | private volatile Config config;
9 | private volatile WebConfig webConfig;
10 |
11 | private TestConfigFactory(){
12 | config = ConfigFactory.systemProperties()
13 | .withFallback(ConfigFactory.systemEnvironment())
14 | .withFallback(ConfigFactory.parseResources("test.conf"));
15 | }
16 |
17 | public synchronized WebConfig getWebConfig(){
18 | if(webConfig == null){
19 | webConfig = ConfigBeanFactory.create(config.getConfig("web"), WebConfig.class);
20 | }
21 | return webConfig;
22 | }
23 |
24 | public synchronized static TestConfigFactory getInstance(){
25 | return new TestConfigFactory();
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/config/WebConfig.java:
--------------------------------------------------------------------------------
1 | package web.findby.config;
2 |
3 | import lombok.Data;
4 | import web.findby.WebDriverFactory;
5 |
6 | @Data
7 | public class WebConfig {
8 | private String baseUrl;
9 | private WebDriverFactory.Browser browser;
10 | }
11 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/elements/Button.java:
--------------------------------------------------------------------------------
1 | package web.findby.elements;
2 |
3 | import org.openqa.selenium.WebDriver;
4 | import org.openqa.selenium.WebElement;
5 |
6 | public class Button extends CustomElement{
7 | public Button(WebElement webElement, WebDriver driver) {
8 | super(webElement, driver);
9 | }
10 |
11 | public void click(){
12 | waitClickability().click();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/elements/CustomElement.java:
--------------------------------------------------------------------------------
1 | package web.findby.elements;
2 |
3 | import org.openqa.selenium.WebDriver;
4 | import org.openqa.selenium.WebElement;
5 | import org.openqa.selenium.support.ui.ExpectedConditions;
6 | import org.openqa.selenium.support.ui.WebDriverWait;
7 |
8 | import java.time.Duration;
9 |
10 | public abstract class CustomElement {
11 | private static final Duration DEFAULT_TIMEOUT_SECONDS = Duration.ofSeconds(10);
12 | protected WebElement webElement;
13 | protected WebDriver driver;
14 | protected WebDriverWait wait;
15 |
16 | public CustomElement(WebElement webElement, WebDriver driver){
17 | this.webElement = webElement;
18 | this.driver = driver;
19 | this.wait = new WebDriverWait(driver, DEFAULT_TIMEOUT_SECONDS);
20 | }
21 |
22 | public WebElement waitVisibility(){
23 | return wait.until(ExpectedConditions.visibilityOf(webElement));
24 | }
25 |
26 | public WebElement getWebElement(){
27 | return webElement;
28 | }
29 |
30 | public String getText(){
31 | return webElement.getText();
32 | }
33 |
34 | protected WebElement waitClickability(){
35 | return wait.until(ExpectedConditions.elementToBeClickable(webElement));
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/elements/EditBox.java:
--------------------------------------------------------------------------------
1 | package web.findby.elements;
2 |
3 | import org.openqa.selenium.WebDriver;
4 | import org.openqa.selenium.WebElement;
5 |
6 | public class EditBox extends CustomElement{
7 | public EditBox(WebElement webElement, WebDriver driver) {
8 | super(webElement, driver);
9 | }
10 |
11 | public EditBox sendKeys(String text){
12 | waitVisibility().sendKeys(text);
13 | return this;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/elements/ElementsDecorator.java:
--------------------------------------------------------------------------------
1 | package web.findby.elements;
2 |
3 | import org.openqa.selenium.WebDriver;
4 | import org.openqa.selenium.WebElement;
5 | import org.openqa.selenium.support.pagefactory.DefaultFieldDecorator;
6 | import org.openqa.selenium.support.pagefactory.ElementLocator;
7 | import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
8 |
9 | import java.lang.reflect.Field;
10 | import java.lang.reflect.InvocationTargetException;
11 |
12 | public class ElementsDecorator extends DefaultFieldDecorator {
13 | private WebDriver webDriver;
14 |
15 | public ElementsDecorator(ElementLocatorFactory factory, WebDriver driver) {
16 | super(factory);
17 | this.webDriver = driver;
18 | }
19 |
20 | @Override
21 | public Object decorate(ClassLoader loader, Field field) {
22 | if(isCustomElement(field)){
23 | ElementLocator locator = factory.createLocator(field);
24 | return createElement(loader, locator, field.getType());
25 | }
26 | return super.decorate(loader, field);
27 | }
28 |
29 | private boolean isCustomElement(Field field){
30 | return CustomElement.class.isAssignableFrom(field.getType());
31 | }
32 |
33 | protected T createElement(ClassLoader loader, ElementLocator locator, Class clazz){
34 | WebElement proxy = proxyForLocator(loader, locator);
35 |
36 | try {
37 | return clazz.getConstructor(WebElement.class, WebDriver.class).newInstance(proxy, webDriver);
38 | } catch (NoSuchMethodException|SecurityException|IllegalAccessException|InstantiationException| InvocationTargetException e){
39 | throw new AssertionError("Webelement can't be represented as " + clazz);
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/elements/IFrame.java:
--------------------------------------------------------------------------------
1 | package web.findby.elements;
2 |
3 | import org.openqa.selenium.WebDriver;
4 | import org.openqa.selenium.WebElement;
5 |
6 | public class IFrame extends CustomElement{
7 | public IFrame(WebElement webElement, WebDriver driver) {
8 | super(webElement, driver);
9 | }
10 |
11 | public IFrame switchTo(){
12 | driver.switchTo().frame(waitVisibility());
13 | return this;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/page/BaseLoggedInPage.java:
--------------------------------------------------------------------------------
1 | package web.findby.page;
2 |
3 | import org.openqa.selenium.NoSuchElementException;
4 | import org.openqa.selenium.WebDriver;
5 | import org.openqa.selenium.WebElement;
6 | import org.openqa.selenium.support.FindBy;
7 |
8 | public class BaseLoggedInPage extends BasePage {
9 | @FindBy(xpath = "//span[contains(text(), '@rambler.ru')]")
10 | protected WebElement loggedInEmail;
11 | @FindBy(xpath = "//a[text()='Мой профиль']")
12 | protected WebElement profileLink;
13 |
14 | public BaseLoggedInPage(WebDriver driver) {
15 | super(driver);
16 | }
17 |
18 | public boolean isLoggedInAs(String email){
19 | try {
20 | return waitVisibility(loggedInEmail).getText().equals(email);
21 | } catch (NoSuchElementException e){
22 | e.printStackTrace();
23 | return false;
24 | }
25 | }
26 |
27 | public ProfilePage openProfile(){
28 | waitAndClick(loggedInEmail);
29 | waitAndClick(profileLink);
30 | switchToAnotherTab();
31 |
32 | return new ProfilePage(driver);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/page/BasePage.java:
--------------------------------------------------------------------------------
1 | package web.findby.page;
2 |
3 | import org.openqa.selenium.WebDriver;
4 | import org.openqa.selenium.WebElement;
5 | import org.openqa.selenium.interactions.Action;
6 | import org.openqa.selenium.interactions.Actions;
7 | import org.openqa.selenium.support.PageFactory;
8 | import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory;
9 | import org.openqa.selenium.support.pagefactory.ElementLocator;
10 | import org.openqa.selenium.support.pagefactory.ElementLocatorFactory;
11 | import org.openqa.selenium.support.ui.ExpectedConditions;
12 | import org.openqa.selenium.support.ui.WebDriverWait;
13 | import web.findby.JSExecutor;
14 | import web.findby.elements.ElementsDecorator;
15 |
16 | import java.time.Duration;
17 |
18 | public abstract class BasePage {
19 | protected static final String BASE_URL = "https://www.rambler.ru";
20 | private static final Duration DEFAULT_TIMEOUT_SECONDS = Duration.ofSeconds(10);
21 |
22 | protected WebDriver driver;
23 | protected WebDriverWait wait;
24 | protected JSExecutor js;
25 |
26 | public BasePage(WebDriver driver){
27 | this.driver = driver;
28 | this.wait = new WebDriverWait(driver, DEFAULT_TIMEOUT_SECONDS);
29 | this.js = new JSExecutor(driver);
30 |
31 | ElementLocatorFactory factory = new DefaultElementLocatorFactory(driver);
32 | ElementsDecorator decorator = new ElementsDecorator(factory, driver);
33 | PageFactory.initElements(decorator, this);
34 | }
35 |
36 | protected void waitAndClick(WebElement locator){
37 | // new Actions(driver).click(wait.until(ExpectedConditions.elementToBeClickable(locator)));
38 | wait.until(ExpectedConditions.elementToBeClickable(locator)).click();
39 | }
40 |
41 | protected WebElement waitVisibility(WebElement locator){
42 | return wait.until(ExpectedConditions.visibilityOf(locator));
43 | }
44 |
45 | public void switchToAnotherTab(){
46 | driver.switchTo().window(
47 | driver.getWindowHandles().stream()
48 | .filter(h -> !h.equals(driver.getWindowHandle()))
49 | .findFirst().get()
50 | );
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/page/LoginPage.java:
--------------------------------------------------------------------------------
1 | package web.findby.page;
2 |
3 | import org.openqa.selenium.By;
4 | import org.openqa.selenium.WebDriver;
5 | import org.openqa.selenium.WebElement;
6 | import org.openqa.selenium.support.FindBy;
7 | import org.openqa.selenium.support.ui.ExpectedConditions;
8 | import web.findby.elements.Button;
9 | import web.findby.elements.EditBox;
10 | import web.findby.elements.IFrame;
11 | import web.simple.config.WebConfig;
12 |
13 | public class LoginPage extends BasePage {
14 | @FindBy(xpath = "//*[text()='Вход']")
15 | private Button openLogin;
16 | @FindBy(xpath = "//div[@data-id-frame]/iframe")
17 | private IFrame loginIFrame;
18 | @FindBy(id = "login")
19 | private EditBox loginBox;
20 | @FindBy(id = "password")
21 | private EditBox passwordBox;
22 | @FindBy(xpath = "//*[text()='Войти']")
23 | private Button processLogin;
24 |
25 | public LoginPage(WebDriver driver) {
26 | super(driver);
27 | driver.get(BASE_URL);
28 | openLogin.click();
29 | loginIFrame.switchTo();
30 | loginBox.waitVisibility();
31 | }
32 |
33 | public LoginPage typeLogin(String email){
34 | loginBox.sendKeys(email);
35 | return this;
36 | }
37 |
38 | public LoginPage typePassword(String password){
39 | passwordBox.sendKeys(password);
40 | return this;
41 | }
42 |
43 | public SearchPage clickLogin(){
44 | processLogin.click();
45 | return new SearchPage(driver);
46 | }
47 |
48 | public SearchPage loginAs(String email, String password){
49 | typeLogin(email);
50 | typePassword(password);
51 | return clickLogin();
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/page/ProfilePage.java:
--------------------------------------------------------------------------------
1 | package web.findby.page;
2 |
3 | import org.openqa.selenium.NoSuchElementException;
4 | import org.openqa.selenium.WebDriver;
5 | import org.openqa.selenium.WebElement;
6 | import org.openqa.selenium.support.FindBy;
7 |
8 | public class ProfilePage extends BaseLoggedInPage {
9 | @FindBy(xpath = "//h1[text()='Simple Automation']")
10 | private WebElement profilePageTitle;
11 |
12 | public ProfilePage(WebDriver driver) {
13 | super(driver);
14 | }
15 |
16 | public boolean isProfileOpened(){
17 | try {
18 | return waitVisibility(profilePageTitle).isDisplayed();
19 | } catch (NoSuchElementException e){
20 | e.printStackTrace();
21 | return false;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/page/SearchPage.java:
--------------------------------------------------------------------------------
1 | package web.findby.page;
2 |
3 | import org.openqa.selenium.WebDriver;
4 | import org.openqa.selenium.WebElement;
5 | import org.openqa.selenium.support.FindBy;
6 |
7 | public class SearchPage extends BaseLoggedInPage {
8 | public SearchPage(WebDriver driver) {
9 | super(driver);
10 | }
11 |
12 | @FindBy(xpath = "//img[contains(@src, 'news')]")
13 | private WebElement news;
14 |
15 | public SearchPage scrollToNews(){
16 | waitVisibility(loggedInEmail);
17 | js.scrollTo(news);
18 | return this;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/tests/BaseTest.java:
--------------------------------------------------------------------------------
1 | package web.findby.tests;
2 |
3 | import org.junit.jupiter.api.AfterEach;
4 | import org.junit.jupiter.api.BeforeEach;
5 | import org.openqa.selenium.WebDriver;
6 | import web.findby.WebDriverFactory;
7 |
8 | public class BaseTest {
9 | protected static final String email = "simpleautomation@rambler.ru";
10 | protected static final String password = "S1mpl34ut0m4ti0n";
11 | protected ThreadLocal driver = new ThreadLocal<>();
12 |
13 | @BeforeEach
14 | public void createDriver(){
15 | driver.set(WebDriverFactory.getWebDriver());
16 | }
17 |
18 | @AfterEach
19 | public void disposeDriver(){
20 | if(driver.get() != null){
21 | driver.get().quit();
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/tests/LoginTest.java:
--------------------------------------------------------------------------------
1 | package web.findby.tests;
2 |
3 | import org.junit.jupiter.api.Assertions;
4 | import org.junit.jupiter.api.Test;
5 | import web.findby.page.LoginPage;
6 |
7 | public class LoginTest extends BaseTest{
8 | @Test
9 | public void login(){
10 | Assertions.assertTrue(
11 | new LoginPage(driver.get())
12 | .loginAs(email, password)
13 | .isLoggedInAs(email)
14 | );
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/src/test/java/web/findby/tests/ProfileTest.java:
--------------------------------------------------------------------------------
1 | package web.findby.tests;
2 |
3 | import org.junit.jupiter.api.Assertions;
4 | import org.junit.jupiter.api.Test;
5 | import web.findby.page.LoginPage;
6 |
7 | public class ProfileTest extends BaseTest{
8 | @Test
9 | public void openProfile(){
10 | Assertions.assertTrue(
11 | new LoginPage(driver.get())
12 | .loginAs(email, password)
13 | .openProfile()
14 | .isProfileOpened()
15 | );
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/RamblerTest.java:
--------------------------------------------------------------------------------
1 | package web.simple;
2 |
3 | import org.junit.jupiter.api.Assertions;
4 | import org.junit.jupiter.api.BeforeEach;
5 | import org.junit.jupiter.api.DisplayName;
6 | import org.junit.jupiter.api.Test;
7 | import org.junit.jupiter.api.extension.ExtendWith;
8 | import org.openqa.selenium.WebDriver;
9 | import web.simple.page.LoginPage;
10 |
11 | @DisplayName("Базовые тесты Rambler")
12 | @ExtendWith(ScreenshotExtension.class)
13 | public class RamblerTest {
14 |
15 | private static final String email = "simpleautomation@rambler.ru";
16 | private static final String password = "S1mpl34ut0m4ti0n";
17 | private ThreadLocal driver = new ThreadLocal<>();
18 |
19 | @BeforeEach
20 | public void createDriver(){
21 | driver.set(WebDriverFactory.getWebDriver());
22 | }
23 |
24 | // @AfterEach
25 | // public void disposeDriver(){
26 | // if(driver.get() != null){
27 | // driver.get().quit();
28 | // }
29 | // }
30 |
31 | @Test
32 | @DisplayName("Проверка логина")
33 | public void login(){
34 | Assertions.assertTrue(
35 | new LoginPage(driver.get())
36 | .loginAs(email, password)
37 | .isLoggedIn(email)
38 | );
39 | }
40 |
41 | @Test
42 | @DisplayName("Открытие профиля")
43 | public void openProfile(){
44 | Assertions.assertTrue(
45 | new LoginPage(driver.get())
46 | .loginAs(email, password)
47 | .openProfile()
48 | .isProfileOpened()
49 | );
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/ScreenshotExtension.java:
--------------------------------------------------------------------------------
1 | package web.simple;
2 |
3 | import io.qameta.allure.Allure;
4 | import lombok.SneakyThrows;
5 | import org.junit.jupiter.api.extension.ExtensionContext;
6 | import org.junit.jupiter.api.extension.TestWatcher;
7 | import org.openqa.selenium.OutputType;
8 | import org.openqa.selenium.TakesScreenshot;
9 | import org.openqa.selenium.WebDriver;
10 |
11 | import java.lang.reflect.Field;
12 | import java.util.Optional;
13 |
14 | public class ScreenshotExtension implements TestWatcher {
15 |
16 | @SneakyThrows
17 | @Override
18 | public void testFailed(ExtensionContext context, Throwable throwable){
19 | WebDriver driver = getDriver(context);
20 |
21 | Allure.getLifecycle().addAttachment(
22 | "Screenshot",
23 | "image/png", "png",
24 | ((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES)
25 | );
26 | }
27 |
28 | @Override
29 | public void testDisabled(ExtensionContext context, Optional reason) {
30 | getDriver(context).close();
31 | }
32 |
33 | @Override
34 | public void testSuccessful(ExtensionContext context) {
35 | getDriver(context).close();
36 |
37 | }
38 |
39 | @Override
40 | public void testAborted(ExtensionContext context, Throwable cause) {
41 | getDriver(context).close();
42 | }
43 |
44 | private WebDriver getDriver(ExtensionContext context) {
45 | Object instance = context.getRequiredTestInstance();
46 |
47 | try {
48 | Field field = instance.getClass().getDeclaredField("driver");
49 | field.setAccessible(true);
50 | return ((ThreadLocal) field.get(instance)).get();
51 | } catch (NoSuchFieldException | IllegalAccessException e){
52 | throw new RuntimeException(e);
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/WebDriverFactory.java:
--------------------------------------------------------------------------------
1 | package web.simple;
2 |
3 | import com.google.common.io.Resources;
4 | import org.openqa.selenium.WebDriver;
5 | import org.openqa.selenium.chrome.ChromeDriver;
6 | import org.openqa.selenium.chrome.ChromeOptions;
7 | import org.openqa.selenium.firefox.FirefoxDriver;
8 | import web.simple.config.TestConfigFactory;
9 |
10 | import java.time.Duration;
11 |
12 | public class WebDriverFactory {
13 | private static TestConfigFactory config = TestConfigFactory.getInstance();
14 |
15 | public static WebDriver getWebDriver(){
16 | switch (config.getWebConfig().getBrowser()){
17 | case FIREFOX:
18 | return new FirefoxDriver();
19 | case CHROME:
20 | default:
21 | return getChromeDriver();
22 | }
23 | }
24 |
25 | public enum Browser{
26 | CHROME, FIREFOX
27 | }
28 |
29 | private static ChromeDriver getChromeDriver(){
30 | String chromeBinaryName;
31 |
32 | switch(System.getProperty("os.name").toLowerCase()){
33 | case "mac os x":
34 | default:
35 | chromeBinaryName = "chromedriver";
36 | break;
37 | case "windows 7":
38 | chromeBinaryName = "chromedriver.exe";
39 | break;
40 | case "linux":
41 | chromeBinaryName = "chromedriver_linux";
42 | break;
43 | }
44 |
45 | System.setProperty("webdriver.chrome.driver", Resources.getResource(chromeBinaryName).getPath());
46 |
47 | ChromeOptions options = new ChromeOptions();
48 | options.addArguments("--disable-features=VizDisplayCompositor");
49 | // options.addArguments("--headless", "--no-gpu");
50 |
51 | ChromeDriver driver = new ChromeDriver(options);
52 | driver.manage().timeouts().pageLoadTimeout(Duration.ofMinutes(5));
53 | return driver;
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/config/TestConfigFactory.java:
--------------------------------------------------------------------------------
1 | package web.simple.config;
2 |
3 | import com.typesafe.config.Config;
4 | import com.typesafe.config.ConfigBeanFactory;
5 | import com.typesafe.config.ConfigFactory;
6 |
7 | public class TestConfigFactory {
8 | private volatile Config config;
9 | private volatile WebConfig webConfig;
10 |
11 | private TestConfigFactory(){
12 | config = ConfigFactory.systemProperties()
13 | .withFallback(ConfigFactory.systemEnvironment())
14 | .withFallback(ConfigFactory.parseResources("test.conf"));
15 | }
16 |
17 | public synchronized WebConfig getWebConfig(){
18 | if(webConfig == null){
19 | webConfig = ConfigBeanFactory.create(config.getConfig("web"), WebConfig.class);
20 | }
21 | return webConfig;
22 | }
23 |
24 | public synchronized static TestConfigFactory getInstance(){
25 | return new TestConfigFactory();
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/config/WebConfig.java:
--------------------------------------------------------------------------------
1 | package web.simple.config;
2 |
3 | import lombok.Data;
4 | import web.simple.WebDriverFactory;
5 |
6 | @Data
7 | public class WebConfig {
8 | private String baseUrl;
9 | private WebDriverFactory.Browser browser;
10 | }
11 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/page/BaseLoggedInPage.java:
--------------------------------------------------------------------------------
1 | package web.simple.page;
2 |
3 | import io.qameta.allure.Step;
4 | import org.openqa.selenium.By;
5 | import org.openqa.selenium.NoSuchElementException;
6 | import org.openqa.selenium.WebDriver;
7 |
8 | public class BaseLoggedInPage extends BasePage{
9 | private By loggedInEmail = By.xpath("//span[contains(text(), '@rambler.ru')]");
10 | private By profileLink = By.xpath("//a[text()='Мой профиль']");
11 |
12 | public BaseLoggedInPage(WebDriver driver) {
13 | super(driver);
14 | }
15 |
16 | @Step("Проверка, что произошел логин под пользователем {0}")
17 | public boolean isLoggedIn(String email){
18 | try {
19 | return waitVisibility(loggedInEmail).getText().equals(email);
20 | } catch (NoSuchElementException e){
21 | e.printStackTrace();
22 | return false;
23 | }
24 | }
25 |
26 | @Step("Открытие профиля")
27 | public ProfilePage openProfile(){
28 | waitAndClick(loggedInEmail);
29 | waitAndClick(profileLink);
30 | switchToAnotherTab();
31 |
32 | return new ProfilePage(driver);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/page/BasePage.java:
--------------------------------------------------------------------------------
1 | package web.simple.page;
2 |
3 | import io.qameta.allure.Step;
4 | import org.openqa.selenium.By;
5 | import org.openqa.selenium.WebDriver;
6 | import org.openqa.selenium.WebElement;
7 | import org.openqa.selenium.support.ui.ExpectedConditions;
8 | import org.openqa.selenium.support.ui.WebDriverWait;
9 |
10 | import java.time.Duration;
11 |
12 | public abstract class BasePage {
13 | protected static final String BASE_URL = "https://www.rambler.ru";
14 | private static final Duration DEFAULT_TIMEOUT_SECONDS = Duration.ofMinutes(5);
15 |
16 | protected WebDriver driver;
17 | protected WebDriverWait wait;
18 |
19 | public BasePage(WebDriver driver){
20 | this.driver = driver;
21 | this.wait = new WebDriverWait(driver, DEFAULT_TIMEOUT_SECONDS);
22 | }
23 |
24 | protected void waitAndClick(By locator){
25 | wait.until(ExpectedConditions.elementToBeClickable(locator)).click();
26 | }
27 |
28 | @Step("Ожидание элемента с локатором {locator}")
29 | protected WebElement waitVisibility(By locator){
30 | return wait.until(ExpectedConditions.visibilityOfElementLocated(locator));
31 | }
32 |
33 | @Step("Переключение на другой tab")
34 | public void switchToAnotherTab(){
35 | driver.switchTo().window(
36 | driver.getWindowHandles().stream()
37 | .filter(h -> !h.equals(driver.getWindowHandle()))
38 | .findFirst().get()
39 | );
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/page/LoginPage.java:
--------------------------------------------------------------------------------
1 | package web.simple.page;
2 |
3 | import io.qameta.allure.Step;
4 | import org.openqa.selenium.By;
5 | import org.openqa.selenium.WebDriver;
6 | import org.openqa.selenium.support.ui.ExpectedConditions;
7 |
8 | public class LoginPage extends BasePage{
9 | private By openLogin = By.xpath("//*[text()='Вход']");
10 | private By loginIFrame = By.xpath("//div[@data-id-frame]/iframe");
11 | private By loginBox = By.id("login");
12 | private By passwordBox = By.id("password");
13 | private By processLogin = By.xpath("//*[text()='Войти']");
14 |
15 | public LoginPage(WebDriver driver) {
16 | super(driver);
17 | driver.get(BASE_URL);
18 | waitAndClick(openLogin);
19 |
20 | wait.until(ExpectedConditions.presenceOfElementLocated(loginIFrame));
21 | driver.switchTo().frame(driver.findElement(loginIFrame));
22 |
23 | waitVisibility(loginBox);
24 | }
25 |
26 | @Step("Ввод логина {email}")
27 | public LoginPage typeLogin(String email){
28 | driver.findElement(loginBox).sendKeys(email);
29 | return this;
30 | }
31 |
32 | @Step("Ввод Пароля {password}")
33 | public LoginPage typePassword(String password){
34 | driver.findElement(passwordBox).sendKeys(password);
35 | return this;
36 | }
37 |
38 | @Step("Нажатие кнопки логина")
39 | public SearchPage clickLogin(){
40 | driver.findElement(processLogin).click();
41 | driver.switchTo().window(driver.getWindowHandles().stream().findFirst().get());
42 | return new SearchPage(driver);
43 | }
44 |
45 | @Step("Логин как {0}:{1}")
46 | public SearchPage loginAs(String email, String password){
47 | typeLogin(email);
48 | typePassword(password);
49 | return clickLogin();
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/page/ProfilePage.java:
--------------------------------------------------------------------------------
1 | package web.simple.page;
2 |
3 | import io.qameta.allure.Step;
4 | import org.openqa.selenium.By;
5 | import org.openqa.selenium.NoSuchElementException;
6 | import org.openqa.selenium.WebDriver;
7 |
8 | public class ProfilePage extends BaseLoggedInPage{
9 | private By profilePageTitle = By.xpath("//h1[text()='Simple Automation']");
10 |
11 | public ProfilePage(WebDriver driver) {
12 | super(driver);
13 | }
14 |
15 | @Step("Проверка, что открыта страница профиля")
16 | public boolean isProfileOpened(){
17 | try {
18 | return waitVisibility(profilePageTitle).isDisplayed();
19 | } catch (NoSuchElementException e){
20 | e.printStackTrace();
21 | return false;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/test/java/web/simple/page/SearchPage.java:
--------------------------------------------------------------------------------
1 | package web.simple.page;
2 |
3 | import org.openqa.selenium.WebDriver;
4 |
5 | public class SearchPage extends BaseLoggedInPage{
6 | public SearchPage(WebDriver driver) {
7 | super(driver);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/test/resources/META-INF/aop-ajc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/test/resources/UsersSchema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "http://json-schema.org/draft-04/schema#",
3 | "type": "object",
4 | "properties": {
5 | "page": {
6 | "type": "number"
7 | },
8 | "total": {
9 | "type": "number"
10 | },
11 | "total_pages": {
12 | "type": "number"
13 | },
14 | "data": {
15 | "type": "array",
16 | "items": {
17 | "type": "object",
18 | "properties": {
19 | "id":{
20 | "type": "number"
21 | },
22 | "email": {
23 | "type": "string"
24 | },
25 | "first_name": {
26 | "type": "string"
27 | },
28 | "last_name": {
29 | "type": "string"
30 | },
31 | "avatar": {
32 | "type": "string"
33 | }
34 | }
35 | }
36 | },
37 | "support": {
38 | "type": "object",
39 | "properties": {
40 | "url": {
41 | "type": "string"
42 | },
43 | "text": {
44 | "type": "string"
45 | }
46 | }
47 | }
48 | }
49 | }
--------------------------------------------------------------------------------
/src/test/resources/UsersTemplate.json:
--------------------------------------------------------------------------------
1 | {
2 | "page": 7,
3 | "per_page": 8,
4 | "total": 12,
5 | "total_pages": 2,
6 | "data": [
7 | {
8 | "id": 7,
9 | "email": "test@test",
10 | "first_name": "M",
11 | "last_name": "M",
12 | "avatar": "link"
13 | }
14 | ],
15 | "support": {
16 | "url": "link",
17 | "text": "text"
18 | }
19 | }
--------------------------------------------------------------------------------
/src/test/resources/categories.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "GetFail",
4 | "matchedStatuses": ["failed"],
5 | "traceRegex": ".*getUser.*"
6 | }
7 | ]
--------------------------------------------------------------------------------
/src/test/resources/chromedriver:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/src/test/resources/chromedriver
--------------------------------------------------------------------------------
/src/test/resources/chromedriver.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/src/test/resources/chromedriver.exe
--------------------------------------------------------------------------------
/src/test/resources/chromedriver_linux:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/src/test/resources/chromedriver_linux
--------------------------------------------------------------------------------
/src/test/resources/junit-platform.properties:
--------------------------------------------------------------------------------
1 | #junit.jupiter.execution.parallel.enabled = true
2 | #junit.jupiter.execution.parallel.mode.default = concurrent
3 | #junit.jupiter.execution.parallel.classes.default = same_thread
--------------------------------------------------------------------------------
/src/test/resources/test.conf:
--------------------------------------------------------------------------------
1 | web {
2 | baseUrl = "https://www.rambler.ru/"
3 | browser = CHROME
4 | }
--------------------------------------------------------------------------------
/target/allure-results/1c2642d6-770d-48d6-964f-ea8921f0a6ab-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"1c2642d6-770d-48d6-964f-ea8921f0a6ab","name":"testHappiness()","children":["381dcd85-c5fb-4a58-a83b-87fcd4428071"],"befores":[],"afters":[],"links":[],"start":1661028805493,"stop":1661028816932}
--------------------------------------------------------------------------------
/target/allure-results/381dcd85-c5fb-4a58-a83b-87fcd4428071-result.json:
--------------------------------------------------------------------------------
1 | {"name":"testHappiness()","status":"passed","stage":"finished","description":"","steps":[],"attachments":[],"parameters":[],"start":1661028805845,"stop":1661028816577,"uuid":"381dcd85-c5fb-4a58-a83b-87fcd4428071","historyId":"1f8f20475af7337b5d7af434306f1ffc","fullName":"rest.DontWorryTest.testHappiness","labels":[{"name":"host","value":"Ivans-MacBook-Air.local"},{"name":"thread","value":"46146@Ivans-MacBook-Air.local.main(1)"},{"name":"framework","value":"junit-platform"},{"name":"language","value":"java"},{"name":"package","value":"rest.DontWorryTest"},{"name":"testClass","value":"rest.DontWorryTest"},{"name":"testMethod","value":"testHappiness"},{"name":"suite","value":"rest.DontWorryTest"}],"links":[]}
--------------------------------------------------------------------------------
/target/allure-results/57af8b43-56c8-4333-96eb-b35d50ec6343-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"57af8b43-56c8-4333-96eb-b35d50ec6343","name":"testHappiness()","children":["146deca5-461c-4486-a926-0984effc622d"],"befores":[],"afters":[],"links":[],"start":1661028665294,"stop":1661028674346}
--------------------------------------------------------------------------------
/target/allure-results/6aeec390-7f46-4f8b-8ce9-9c1aa08dfe80-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"6aeec390-7f46-4f8b-8ce9-9c1aa08dfe80","name":"DontWorryTest","children":["146deca5-461c-4486-a926-0984effc622d"],"befores":[],"afters":[],"links":[],"start":1661028665232,"stop":1661028674503}
--------------------------------------------------------------------------------
/target/allure-results/7b4aaf4d-b2cf-4c69-b134-749dabf48da2-container.json:
--------------------------------------------------------------------------------
1 | {"uuid":"7b4aaf4d-b2cf-4c69-b134-749dabf48da2","name":"DontWorryTest","children":["381dcd85-c5fb-4a58-a83b-87fcd4428071"],"befores":[],"afters":[],"links":[],"start":1661028805432,"stop":1661028816976}
--------------------------------------------------------------------------------
/target/classes/reqres.postman_collection.json:
--------------------------------------------------------------------------------
1 | {
2 | "info": {
3 | "_postman_id": "8f009e7c-857a-49d7-bd7c-d33181511a0a",
4 | "name": "reqres",
5 | "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
6 | },
7 | "item": [
8 | {
9 | "name": "Get Users",
10 | "request": {
11 | "method": "GET",
12 | "header": [],
13 | "url": {
14 | "raw": "https://reqres.in/api/users",
15 | "protocol": "https",
16 | "host": [
17 | "reqres",
18 | "in"
19 | ],
20 | "path": [
21 | "api",
22 | "users"
23 | ]
24 | }
25 | },
26 | "response": []
27 | },
28 | {
29 | "name": "Get User",
30 | "protocolProfileBehavior": {
31 | "disableBodyPruning": true
32 | },
33 | "request": {
34 | "method": "GET",
35 | "header": [],
36 | "body": {
37 | "mode": "raw",
38 | "raw": "",
39 | "options": {
40 | "raw": {
41 | "language": "json"
42 | }
43 | }
44 | },
45 | "url": {
46 | "raw": "https://reqres.in/api/users/2",
47 | "protocol": "https",
48 | "host": [
49 | "reqres",
50 | "in"
51 | ],
52 | "path": [
53 | "api",
54 | "users",
55 | "2"
56 | ]
57 | }
58 | },
59 | "response": []
60 | },
61 | {
62 | "name": "Create User",
63 | "request": {
64 | "method": "POST",
65 | "header": [],
66 | "body": {
67 | "mode": "raw",
68 | "raw": "{\n \"name\": \"simple\",\n \"job\": \"automation\"\n}",
69 | "options": {
70 | "raw": {
71 | "language": "json"
72 | }
73 | }
74 | },
75 | "url": {
76 | "raw": "https://reqres.in/api/users",
77 | "protocol": "https",
78 | "host": [
79 | "reqres",
80 | "in"
81 | ],
82 | "path": [
83 | "api",
84 | "users"
85 | ]
86 | }
87 | },
88 | "response": []
89 | },
90 | {
91 | "name": "Login",
92 | "request": {
93 | "method": "POST",
94 | "header": [],
95 | "body": {
96 | "mode": "raw",
97 | "raw": "{\n \"email\": \"eve.holt@reqres.in\",\n \"password\": \"cityslicka\"\n}",
98 | "options": {
99 | "raw": {
100 | "language": "json"
101 | }
102 | }
103 | },
104 | "url": {
105 | "raw": "https://reqres.in/api/login",
106 | "protocol": "https",
107 | "host": [
108 | "reqres",
109 | "in"
110 | ],
111 | "path": [
112 | "api",
113 | "login"
114 | ]
115 | }
116 | },
117 | "response": []
118 | }
119 | ],
120 | "protocolProfileBehavior": {}
121 | }
--------------------------------------------------------------------------------
/target/classes/simple/automation/AuthorizationTests.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/classes/simple/automation/AuthorizationTests.class
--------------------------------------------------------------------------------
/target/classes/simple/automation/BaseTestWithAuthorization.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/classes/simple/automation/BaseTestWithAuthorization.class
--------------------------------------------------------------------------------
/target/classes/simple/automation/BaseTestWithOrder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/classes/simple/automation/BaseTestWithOrder.class
--------------------------------------------------------------------------------
/target/classes/simple/automation/Main.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/classes/simple/automation/Main.class
--------------------------------------------------------------------------------
/target/classes/simple/automation/OrderTests$Roles.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/classes/simple/automation/OrderTests$Roles.class
--------------------------------------------------------------------------------
/target/classes/simple/automation/OrderTests.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/classes/simple/automation/OrderTests.class
--------------------------------------------------------------------------------
/target/classes/simple/automation/Smoke.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/classes/simple/automation/Smoke.class
--------------------------------------------------------------------------------
/target/classes/simple/automation/User.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/classes/simple/automation/User.class
--------------------------------------------------------------------------------
/target/java-basics-1.0-SNAPSHOT.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/java-basics-1.0-SNAPSHOT.jar
--------------------------------------------------------------------------------
/target/maven-archiver/pom.properties:
--------------------------------------------------------------------------------
1 | #Generated by Maven
2 | #Sun Jan 16 23:48:05 SAMT 2022
3 | version=1.0-SNAPSHOT
4 | groupId=simple.automation
5 | artifactId=java-basics
6 |
--------------------------------------------------------------------------------
/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst:
--------------------------------------------------------------------------------
1 | simple/automation/BaseTestWithAuthorization.class
2 | simple/automation/OrderTests.class
3 | simple/automation/AuthorizationTests.class
4 | simple/automation/BaseTestWithOrder.class
5 | simple/automation/User.class
6 | simple/automation/Smoke.class
7 | simple/automation/OrderTests$Roles.class
8 | simple/automation/Main.class
9 |
--------------------------------------------------------------------------------
/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst:
--------------------------------------------------------------------------------
1 | /Users/vnvc/IdeaProjects/java-basics/src/main/java/simple/automation/OrderTests.java
2 | /Users/vnvc/IdeaProjects/java-basics/src/main/java/simple/automation/Main.java
3 | /Users/vnvc/IdeaProjects/java-basics/src/main/java/simple/automation/AuthorizationTests.java
4 | /Users/vnvc/IdeaProjects/java-basics/src/main/java/simple/automation/Smoke.java
5 | /Users/vnvc/IdeaProjects/java-basics/src/main/java/simple/automation/BaseTestWithAuthorization.java
6 | /Users/vnvc/IdeaProjects/java-basics/src/main/java/simple/automation/BaseTestWithOrder.java
7 | /Users/vnvc/IdeaProjects/java-basics/src/main/java/simple/automation/User.java
8 |
--------------------------------------------------------------------------------
/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst:
--------------------------------------------------------------------------------
1 | rest/pojos/UserRequest.class
2 | rest/pojos/CreateUserResponse.class
3 | web/simple/WebDriverFactory$Browser.class
4 | web/findby/config/TestConfigFactory.class
5 | web/findby/WebDriverFactory$Browser.class
6 | web/simple/page/SearchPage.class
7 | utils/UserGenerator.class
8 | web/simple/config/TestConfigFactory.class
9 | web/simple/WebDriverFactory.class
10 | utils/RestWrapper.class
11 | web/findby/tests/LoginTest.class
12 | web/findby/elements/ElementsDecorator.class
13 | web/findby/page/BasePage.class
14 | web/findby/page/ProfilePage.class
15 | web/findby/WebDriverFactory.class
16 | rest/pojos/UserLogin.class
17 | web/findby/elements/Button.class
18 | web/simple/page/BasePage.class
19 | utils/DateDeserializer.class
20 | web/findby/WebDriverFactory$1.class
21 | utils/services/RestService.class
22 | rest/RestTest.class
23 | web/simple/page/ProfilePage.class
24 | rest/pojos/UserPojo.class
25 | rest/pojos/UserRequest$UserRequestBuilder.class
26 | web/simple/page/BaseLoggedInPage.class
27 | utils/services/OrderService.class
28 | web/findby/tests/ProfileTest.class
29 | web/findby/page/BaseLoggedInPage.class
30 | web/simple/page/LoginPage.class
31 | web/findby/RamblerTest.class
32 | web/findby/elements/CustomElement.class
33 | web/findby/page/SearchPage.class
34 | web/simple/config/WebConfig.class
35 | web/simple/ScreenshotExtension.class
36 | rest/pojos/UserPojoFull.class
37 | utils/services/UserService.class
38 | web/WebDriverLogger.class
39 | web/findby/elements/EditBox.class
40 | rest/steps/UsersSteps.class
41 | web/findby/JSExecutor.class
42 | web/findby/tests/BaseTest.class
43 | web/findby/page/LoginPage.class
44 | web/findby/config/WebConfig.class
45 | web/findby/elements/IFrame.class
46 | web/simple/RamblerTest.class
47 |
--------------------------------------------------------------------------------
/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst:
--------------------------------------------------------------------------------
1 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/elements/Button.java
2 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/page/SearchPage.java
3 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/page/BaseLoggedInPage.java
4 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/rest/pojos/UserRequest.java
5 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/rest/TestGroup.java
6 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/WebDriverLogger.java
7 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/tests/LoginTest.java
8 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/page/ProfilePage.java
9 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/page/LoginPage.java
10 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/tests/BaseTest.java
11 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/page/LoginPage.java
12 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/utils/services/RestService.java
13 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/rest/pojos/CreateUserResponse.java
14 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/elements/EditBox.java
15 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/WebDriverFactory.java
16 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/config/WebConfig.java
17 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/page/BaseLoggedInPage.java
18 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/page/BasePage.java
19 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/elements/IFrame.java
20 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/rest/steps/UsersSteps.java
21 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/utils/DateDeserializer.java
22 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/rest/pojos/UserPojo.java
23 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/page/ProfilePage.java
24 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/RamblerTest.java
25 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/utils/RestWrapper.java
26 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/tests/ProfileTest.java
27 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/page/SearchPage.java
28 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/config/TestConfigFactory.java
29 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/config/WebConfig.java
30 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/config/TestConfigFactory.java
31 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/utils/UserGenerator.java
32 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/page/BasePage.java
33 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/elements/ElementsDecorator.java
34 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/elements/CustomElement.java
35 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/utils/services/OrderService.java
36 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/rest/RestTest.java
37 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/simple/ScreenshotExtension.java
38 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/utils/services/UserService.java
39 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/JSExecutor.java
40 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/RamblerTest.java
41 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/web/findby/WebDriverFactory.java
42 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/rest/pojos/UserLogin.java
43 | /Users/vnvc/IdeaProjects/java-basics/src/test/java/rest/pojos/UserPojoFull.java
44 |
--------------------------------------------------------------------------------
/target/site/allure-maven-plugin/allure-maven.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
23 |
24 |
25 |
26 |
27 | Last Published: 2022-05-21
28 | | Version: 1.0-SNAPSHOT
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
48 |
53 |
54 |
55 |
56 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/target/surefire-reports/2022-01-16T23-46-31_993-jvmRun1.dumpstream:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/surefire-reports/2022-01-16T23-46-31_993-jvmRun1.dumpstream
--------------------------------------------------------------------------------
/target/surefire-reports/2022-01-16T23-46-31_993.dumpstream:
--------------------------------------------------------------------------------
1 | # Created at 2022-01-16T23:46:33.170
2 | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
3 |
4 | # Created at 2022-01-16T23:46:33.171
5 | SLF4J: Defaulting to no-operation (NOP) logger implementation
6 |
7 | # Created at 2022-01-16T23:46:33.171
8 | SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
9 |
10 | # Created at 2022-01-16T23:46:33.485
11 | Jan 16, 2022 11:46:33 PM org.junit.platform.launcher.core.LauncherConfigurationParameters loadClasspathResource
12 |
13 | # Created at 2022-01-16T23:46:33.486
14 | INFO: Loading JUnit Platform configuration parameters from classpath resource [file:/Users/vnvc/IdeaProjects/java-basics/target/classes/junit-platform.properties].
15 |
16 |
--------------------------------------------------------------------------------
/target/surefire-reports/2022-01-16T23-47-37_768.dumpstream:
--------------------------------------------------------------------------------
1 | # Created at 2022-01-16T23:47:38.621
2 | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
3 |
4 | # Created at 2022-01-16T23:47:38.621
5 | SLF4J: Defaulting to no-operation (NOP) logger implementation
6 |
7 | # Created at 2022-01-16T23:47:38.621
8 | SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
9 |
10 | # Created at 2022-01-16T23:47:38.910
11 | Jan 16, 2022 11:47:38 PM org.junit.platform.launcher.core.LauncherConfigurationParameters loadClasspathResource
12 |
13 | # Created at 2022-01-16T23:47:38.910
14 | INFO: Loading JUnit Platform configuration parameters from classpath resource [file:/Users/vnvc/IdeaProjects/java-basics/target/classes/junit-platform.properties].
15 |
16 |
--------------------------------------------------------------------------------
/target/surefire-reports/2022-01-16T23-48-02_812.dumpstream:
--------------------------------------------------------------------------------
1 | # Created at 2022-01-16T23:48:03.633
2 | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
3 |
4 | # Created at 2022-01-16T23:48:03.634
5 | SLF4J: Defaulting to no-operation (NOP) logger implementation
6 |
7 | # Created at 2022-01-16T23:48:03.634
8 | SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
9 |
10 | # Created at 2022-01-16T23:48:03.925
11 | Jan 16, 2022 11:48:03 PM org.junit.platform.launcher.core.LauncherConfigurationParameters loadClasspathResource
12 |
13 | # Created at 2022-01-16T23:48:03.925
14 | INFO: Loading JUnit Platform configuration parameters from classpath resource [file:/Users/vnvc/IdeaProjects/java-basics/target/classes/junit-platform.properties].
15 |
16 |
--------------------------------------------------------------------------------
/target/surefire-reports/2022-01-16T23-49-03_206.dumpstream:
--------------------------------------------------------------------------------
1 | # Created at 2022-01-16T23:49:04.030
2 | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
3 |
4 | # Created at 2022-01-16T23:49:04.030
5 | SLF4J: Defaulting to no-operation (NOP) logger implementation
6 |
7 | # Created at 2022-01-16T23:49:04.031
8 | SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
9 |
10 | # Created at 2022-01-16T23:49:04.336
11 | Jan 16, 2022 11:49:04 PM org.junit.platform.launcher.core.LauncherConfigurationParameters loadClasspathResource
12 |
13 | # Created at 2022-01-16T23:49:04.341
14 | INFO: Loading JUnit Platform configuration parameters from classpath resource [file:/Users/vnvc/IdeaProjects/java-basics/target/classes/junit-platform.properties].
15 |
16 | # Created at 2022-01-16T23:49:11.750
17 | Jan 16, 2022 11:49:11 PM org.openqa.selenium.remote.ProtocolHandshake createSession
18 |
19 | # Created at 2022-01-16T23:49:11.750
20 | INFO: Detected dialect: W3C
21 |
22 | # Created at 2022-01-16T23:49:11.906
23 | Jan 16, 2022 11:49:11 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
24 |
25 | # Created at 2022-01-16T23:49:11.907
26 | WARNING: Unable to find an exact match for CDP version 97, so returning the closest version found: a no-op implementation
27 |
28 | # Created at 2022-01-16T23:49:11.907
29 | Jan 16, 2022 11:49:11 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
30 |
31 | # Created at 2022-01-16T23:49:11.908
32 | INFO: Unable to find CDP implementation matching 97.
33 |
34 | # Created at 2022-01-16T23:49:11.909
35 | Jan 16, 2022 11:49:11 PM org.openqa.selenium.chromium.ChromiumDriver lambda$new$0
36 |
37 | # Created at 2022-01-16T23:49:11.909
38 | WARNING: Unable to find version of CDP to use for . You may need to include a dependency on a specific version of the CDP using something similar to `org.seleniumhq.selenium:selenium-devtools-v86:4.0.0-beta-1` where the version ("v86") matches the version of the chromium-based browser you're using and the version number of the artifact is the same as Selenium's.
39 |
40 | # Created at 2022-01-16T23:49:36.759
41 | Jan 16, 2022 11:49:36 PM org.openqa.selenium.remote.ProtocolHandshake createSession
42 |
43 | # Created at 2022-01-16T23:49:36.765
44 | INFO: Detected dialect: W3C
45 |
46 | # Created at 2022-01-16T23:49:36.787
47 | Jan 16, 2022 11:49:36 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
48 |
49 | # Created at 2022-01-16T23:49:36.787
50 | WARNING: Unable to find an exact match for CDP version 97, so returning the closest version found: a no-op implementation
51 |
52 | # Created at 2022-01-16T23:49:36.788
53 | Jan 16, 2022 11:49:36 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
54 |
55 | # Created at 2022-01-16T23:49:36.788
56 | INFO: Unable to find CDP implementation matching 97.
57 |
58 | # Created at 2022-01-16T23:49:36.789
59 | Jan 16, 2022 11:49:36 PM org.openqa.selenium.chromium.ChromiumDriver lambda$new$0
60 |
61 | # Created at 2022-01-16T23:49:36.789
62 | WARNING: Unable to find version of CDP to use for . You may need to include a dependency on a specific version of the CDP using something similar to `org.seleniumhq.selenium:selenium-devtools-v86:4.0.0-beta-1` where the version ("v86") matches the version of the chromium-based browser you're using and the version number of the artifact is the same as Selenium's.
63 |
64 |
--------------------------------------------------------------------------------
/target/surefire-reports/2022-01-16T23-51-27_414.dumpstream:
--------------------------------------------------------------------------------
1 | # Created at 2022-01-16T23:51:34.071
2 | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
3 |
4 | # Created at 2022-01-16T23:51:34.072
5 | SLF4J: Defaulting to no-operation (NOP) logger implementation
6 |
7 | # Created at 2022-01-16T23:51:34.072
8 | SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
9 |
10 | # Created at 2022-01-16T23:51:34.839
11 | Jan 16, 2022 11:51:34 PM org.junit.platform.launcher.core.LauncherConfigurationParameters loadClasspathResource
12 |
13 | # Created at 2022-01-16T23:51:34.840
14 | INFO: Loading JUnit Platform configuration parameters from classpath resource [file:/Users/vnvc/IdeaProjects/java-basics/target/classes/junit-platform.properties].
15 |
16 | # Created at 2022-01-16T23:51:43.466
17 | Jan 16, 2022 11:51:43 PM org.openqa.selenium.remote.ProtocolHandshake createSession
18 |
19 | # Created at 2022-01-16T23:51:43.467
20 | INFO: Detected dialect: W3C
21 |
22 | # Created at 2022-01-16T23:51:43.858
23 | Jan 16, 2022 11:51:43 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
24 |
25 | # Created at 2022-01-16T23:51:43.858
26 | WARNING: Unable to find an exact match for CDP version 97, so returning the closest version found: a no-op implementation
27 |
28 | # Created at 2022-01-16T23:51:43.859
29 | Jan 16, 2022 11:51:43 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
30 |
31 | # Created at 2022-01-16T23:51:43.860
32 | INFO: Unable to find CDP implementation matching 97.
33 |
34 | # Created at 2022-01-16T23:51:43.861
35 | Jan 16, 2022 11:51:43 PM org.openqa.selenium.chromium.ChromiumDriver lambda$new$0
36 |
37 | # Created at 2022-01-16T23:51:43.862
38 | WARNING: Unable to find version of CDP to use for . You may need to include a dependency on a specific version of the CDP using something similar to `org.seleniumhq.selenium:selenium-devtools-v86:4.0.0-beta-1` where the version ("v86") matches the version of the chromium-based browser you're using and the version number of the artifact is the same as Selenium's.
39 |
40 | # Created at 2022-01-16T23:52:09.691
41 | Jan 16, 2022 11:52:09 PM org.openqa.selenium.remote.ProtocolHandshake createSession
42 |
43 | # Created at 2022-01-16T23:52:09.706
44 | INFO: Detected dialect: W3C
45 |
46 | # Created at 2022-01-16T23:52:09.818
47 | Jan 16, 2022 11:52:09 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
48 |
49 | # Created at 2022-01-16T23:52:09.827
50 | WARNING: Unable to find an exact match for CDP version 97, so returning the closest version found: a no-op implementation
51 |
52 | # Created at 2022-01-16T23:52:09.831
53 | Jan 16, 2022 11:52:09 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
54 |
55 | # Created at 2022-01-16T23:52:09.840
56 | INFO: Unable to find CDP implementation matching 97.
57 |
58 | # Created at 2022-01-16T23:52:09.841
59 | Jan 16, 2022 11:52:09 PM org.openqa.selenium.chromium.ChromiumDriver lambda$new$0
60 |
61 | # Created at 2022-01-16T23:52:09.842
62 | WARNING: Unable to find version of CDP to use for . You may need to include a dependency on a specific version of the CDP using something similar to `org.seleniumhq.selenium:selenium-devtools-v86:4.0.0-beta-1` where the version ("v86") matches the version of the chromium-based browser you're using and the version number of the artifact is the same as Selenium's.
63 |
64 |
--------------------------------------------------------------------------------
/target/surefire-reports/rest.RestTest.txt:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------------------------
2 | Test set: rest.RestTest
3 | -------------------------------------------------------------------------------
4 | Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.216 s - in rest.RestTest
5 |
--------------------------------------------------------------------------------
/target/surefire-reports/web.findby.RamblerTest.txt:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------------------------
2 | Test set: web.findby.RamblerTest
3 | -------------------------------------------------------------------------------
4 | Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.829 s <<< FAILURE! - in web.findby.RamblerTest
5 | openProfile Time elapsed: 0.659 s <<< ERROR!
6 | com.typesafe.config.ConfigException$Missing: merge of system properties,env variables,web.conf @ file:/Users/vnvc/IdeaProjects/java-basics/target/test-classes/web.conf: 1: No configuration setting found for key 'webconfig'
7 | at web.findby.RamblerTest.createDriver(RamblerTest.java:18)
8 |
9 | login Time elapsed: 0.035 s <<< ERROR!
10 | com.typesafe.config.ConfigException$Missing: merge of system properties,env variables,web.conf @ file:/Users/vnvc/IdeaProjects/java-basics/target/test-classes/web.conf: 1: No configuration setting found for key 'webconfig'
11 | at web.findby.RamblerTest.createDriver(RamblerTest.java:18)
12 |
13 |
--------------------------------------------------------------------------------
/target/surefire-reports/web.findby.tests.LoginTest.txt:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------------------------
2 | Test set: web.findby.tests.LoginTest
3 | -------------------------------------------------------------------------------
4 | Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.019 s <<< FAILURE! - in web.findby.tests.LoginTest
5 | login Time elapsed: 0.009 s <<< ERROR!
6 | com.typesafe.config.ConfigException$Missing: merge of system properties,env variables,web.conf @ file:/Users/vnvc/IdeaProjects/java-basics/target/test-classes/web.conf: 1: No configuration setting found for key 'webconfig'
7 |
8 |
--------------------------------------------------------------------------------
/target/surefire-reports/web.findby.tests.ProfileTest.txt:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------------------------
2 | Test set: web.findby.tests.ProfileTest
3 | -------------------------------------------------------------------------------
4 | Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.033 s <<< FAILURE! - in web.findby.tests.ProfileTest
5 | openProfile Time elapsed: 0.009 s <<< ERROR!
6 | com.typesafe.config.ConfigException$Missing: merge of system properties,env variables,web.conf @ file:/Users/vnvc/IdeaProjects/java-basics/target/test-classes/web.conf: 1: No configuration setting found for key 'webconfig'
7 |
8 |
--------------------------------------------------------------------------------
/target/surefire-reports/web.simple.RamblerTest.txt:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------------------------
2 | Test set: web.simple.RamblerTest
3 | -------------------------------------------------------------------------------
4 | Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.459 s <<< FAILURE! - in web.simple.RamblerTest
5 | openProfile Time elapsed: 0.408 s <<< ERROR!
6 | java.lang.IllegalStateException: The path to the driver executable The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
7 | at web.simple.RamblerTest.createDriver(RamblerTest.java:21)
8 |
9 | login Time elapsed: 0.01 s <<< ERROR!
10 | java.lang.IllegalStateException: The path to the driver executable The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
11 | at web.simple.RamblerTest.createDriver(RamblerTest.java:21)
12 |
13 |
--------------------------------------------------------------------------------
/target/test-classes/META-INF/aop-ajc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/target/test-classes/categories.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "GetFail",
4 | "matchedStatuses": ["failed"],
5 | "traceRegex": ".*getUser.*"
6 | }
7 | ]
--------------------------------------------------------------------------------
/target/test-classes/chromedriver:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/chromedriver
--------------------------------------------------------------------------------
/target/test-classes/chromedriver.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/chromedriver.exe
--------------------------------------------------------------------------------
/target/test-classes/chromedriver_linux:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/chromedriver_linux
--------------------------------------------------------------------------------
/target/test-classes/junit-platform.properties:
--------------------------------------------------------------------------------
1 | #junit.jupiter.execution.parallel.enabled = true
2 | #junit.jupiter.execution.parallel.mode.default = concurrent
3 | #junit.jupiter.execution.parallel.classes.default = same_thread
--------------------------------------------------------------------------------
/target/test-classes/rest/DontWorryTest.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/rest/DontWorryTest.class
--------------------------------------------------------------------------------
/target/test-classes/rest/RestTest.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/rest/RestTest.class
--------------------------------------------------------------------------------
/target/test-classes/rest/pojos/CreateUserResponse.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/rest/pojos/CreateUserResponse.class
--------------------------------------------------------------------------------
/target/test-classes/rest/pojos/UserLogin.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/rest/pojos/UserLogin.class
--------------------------------------------------------------------------------
/target/test-classes/rest/pojos/UserPojo.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/rest/pojos/UserPojo.class
--------------------------------------------------------------------------------
/target/test-classes/rest/pojos/UserPojoFull.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/rest/pojos/UserPojoFull.class
--------------------------------------------------------------------------------
/target/test-classes/rest/pojos/UserRequest$UserRequestBuilder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/rest/pojos/UserRequest$UserRequestBuilder.class
--------------------------------------------------------------------------------
/target/test-classes/rest/pojos/UserRequest.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/rest/pojos/UserRequest.class
--------------------------------------------------------------------------------
/target/test-classes/rest/steps/UsersSteps.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/rest/steps/UsersSteps.class
--------------------------------------------------------------------------------
/target/test-classes/test.conf:
--------------------------------------------------------------------------------
1 | web {
2 | baseUrl = "https://www.rambler.ru/"
3 | browser = CHROME
4 | }
--------------------------------------------------------------------------------
/target/test-classes/utils/DateDeserializer.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/utils/DateDeserializer.class
--------------------------------------------------------------------------------
/target/test-classes/utils/RestWrapper.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/utils/RestWrapper.class
--------------------------------------------------------------------------------
/target/test-classes/utils/UserGenerator.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/utils/UserGenerator.class
--------------------------------------------------------------------------------
/target/test-classes/utils/services/OrderService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/utils/services/OrderService.class
--------------------------------------------------------------------------------
/target/test-classes/utils/services/RestService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/utils/services/RestService.class
--------------------------------------------------------------------------------
/target/test-classes/utils/services/UserService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/utils/services/UserService.class
--------------------------------------------------------------------------------
/target/test-classes/web/WebDriverLogger.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/WebDriverLogger.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/JSExecutor.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/JSExecutor.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/RamblerTest.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/RamblerTest.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/WebDriverFactory$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/WebDriverFactory$1.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/WebDriverFactory$Browser.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/WebDriverFactory$Browser.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/WebDriverFactory.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/WebDriverFactory.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/config/TestConfigFactory.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/config/TestConfigFactory.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/config/WebConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/config/WebConfig.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/elements/Button.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/elements/Button.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/elements/CustomElement.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/elements/CustomElement.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/elements/EditBox.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/elements/EditBox.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/elements/ElementsDecorator.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/elements/ElementsDecorator.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/elements/IFrame.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/elements/IFrame.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/page/BaseLoggedInPage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/page/BaseLoggedInPage.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/page/BasePage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/page/BasePage.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/page/LoginPage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/page/LoginPage.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/page/ProfilePage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/page/ProfilePage.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/page/SearchPage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/page/SearchPage.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/tests/BaseTest.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/tests/BaseTest.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/tests/LoginTest.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/tests/LoginTest.class
--------------------------------------------------------------------------------
/target/test-classes/web/findby/tests/ProfileTest.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/findby/tests/ProfileTest.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/RamblerTest.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/RamblerTest.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/ScreenshotExtension.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/ScreenshotExtension.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/WebDriverFactory$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/WebDriverFactory$1.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/WebDriverFactory$Browser.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/WebDriverFactory$Browser.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/WebDriverFactory.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/WebDriverFactory.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/config/TestConfigFactory.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/config/TestConfigFactory.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/config/WebConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/config/WebConfig.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/page/BaseLoggedInPage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/page/BaseLoggedInPage.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/page/BasePage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/page/BasePage.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/page/LoginPage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/page/LoginPage.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/page/ProfilePage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/page/ProfilePage.class
--------------------------------------------------------------------------------
/target/test-classes/web/simple/page/SearchPage.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivanovec/java-basics/556c9f15da1a622d0807c31db4f77bb3e1f2ec6e/target/test-classes/web/simple/page/SearchPage.class
--------------------------------------------------------------------------------