testa_appium_driver 0.1.4 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -2
- data/.idea/deployment.xml +9 -1
- data/.idea/inspectionProfiles/Project_Default.xml +8 -8
- data/.idea/runConfigurations/Android_Test.xml +41 -41
- data/.idea/runConfigurations.xml +10 -0
- data/.idea/sshConfigs.xml +3 -0
- data/.idea/webServers.xml +7 -0
- data/.rspec +3 -3
- data/.rubocop.yml +13 -13
- data/CHANGELOG.md +5 -5
- data/CODE_OF_CONDUCT.md +102 -102
- data/Gemfile +12 -12
- data/LICENSE.txt +21 -21
- data/README.md +18 -5
- data/Rakefile +12 -12
- data/bin/console +17 -17
- data/bin/setup +8 -8
- data/lib/testa_appium_driver/android/class_selectors.rb +53 -18
- data/lib/testa_appium_driver/android/driver.rb +17 -0
- data/lib/testa_appium_driver/android/locator/attributes.rb +1 -3
- data/lib/testa_appium_driver/android/locator.rb +22 -7
- data/lib/testa_appium_driver/android/scroll_actions/uiautomator_scroll_actions.rb +1 -14
- data/lib/testa_appium_driver/common/constants.rb +2 -0
- data/lib/testa_appium_driver/common/helpers.rb +32 -1
- data/lib/testa_appium_driver/common/locator/scroll_actions.rb +20 -4
- data/lib/testa_appium_driver/common/locator.rb +191 -31
- data/lib/testa_appium_driver/common/scroll_actions/w3c_scroll_actions.rb +4 -35
- data/lib/testa_appium_driver/common/scroll_actions.rb +5 -14
- data/lib/testa_appium_driver/driver.rb +92 -40
- data/lib/testa_appium_driver/ios/driver.rb +13 -0
- data/lib/testa_appium_driver/ios/locator.rb +22 -4
- data/lib/testa_appium_driver/ios/type_selectors.rb +36 -15
- data/lib/testa_appium_driver/version.rb +5 -5
- data/testa_appium_driver.iml +36 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a4f1c169a92dfb2d63ab3dc24f3f427c33ef8d003d3b5708dc7b57ddbf4277e
|
4
|
+
data.tar.gz: 11e34eeeecf99e1d24e55406df81276bc108879909c3588fa8ed90a3f68532fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3673817bd405d0b7f1bb8214ebe2c2dd4a2e472add8fab8e195311469bc0058e66ba7a310547fdaa63601ba2e98f4e8456012fc02757d364d5964567acafd42
|
7
|
+
data.tar.gz: 26c78a2555b1931ee9628b1d0a1543af44da81c97b4da9dab5379653a32189ca271d7e791c0dd5253960638ee91a09f42d535c73e92637c19a0e9450190df969
|
data/.gitignore
CHANGED
data/.idea/deployment.xml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<project version="4">
|
3
|
-
<component name="PublishConfigData">
|
3
|
+
<component name="PublishConfigData" autoUpload="On explicit save action" serverName="supertesta.com" preserveTimestamps="false" autoUploadExternalChanges="true">
|
4
4
|
<serverData>
|
5
5
|
<paths name="supertesta.com">
|
6
6
|
<serverdata>
|
@@ -9,6 +9,14 @@
|
|
9
9
|
</mappings>
|
10
10
|
</serverdata>
|
11
11
|
</paths>
|
12
|
+
<paths name="testa.fun">
|
13
|
+
<serverdata>
|
14
|
+
<mappings>
|
15
|
+
<mapping local="$PROJECT_DIR$" web="/" />
|
16
|
+
</mappings>
|
17
|
+
</serverdata>
|
18
|
+
</paths>
|
12
19
|
</serverData>
|
20
|
+
<option name="myAutoUpload" value="ON_EXPLICIT_SAVE" />
|
13
21
|
</component>
|
14
22
|
</project>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<component name="InspectionProjectProfileManager">
|
2
|
-
<profile version="1.0">
|
3
|
-
<option name="myName" value="Project Default" />
|
4
|
-
<inspection_tool class="Rubocop" enabled="false" level="WARNING" enabled_by_default="false" />
|
5
|
-
<inspection_tool class="RubyClassMethodNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
|
6
|
-
<option name="m_maxLength" value="40" />
|
7
|
-
</inspection_tool>
|
8
|
-
</profile>
|
1
|
+
<component name="InspectionProjectProfileManager">
|
2
|
+
<profile version="1.0">
|
3
|
+
<option name="myName" value="Project Default" />
|
4
|
+
<inspection_tool class="Rubocop" enabled="false" level="WARNING" enabled_by_default="false" />
|
5
|
+
<inspection_tool class="RubyClassMethodNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
|
6
|
+
<option name="m_maxLength" value="40" />
|
7
|
+
</inspection_tool>
|
8
|
+
</profile>
|
9
9
|
</component>
|
@@ -1,42 +1,42 @@
|
|
1
|
-
<component name="ProjectRunConfigurationManager">
|
2
|
-
<configuration default="false" name="Android Test" type="RSpecRunConfigurationType" factoryName="RSpec">
|
3
|
-
<module name="testa_appium_driver" />
|
4
|
-
<predefined_log_file enabled="true" id="RUBY_RSPEC" />
|
5
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
|
6
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$PROJECT_DIR$" />
|
7
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
8
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
9
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
10
|
-
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
11
|
-
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
12
|
-
<EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" ENABLE_FORKED_COVERAGE="true" />
|
13
|
-
<EXTENSION ID="net.ashald.envfile">
|
14
|
-
<option name="IS_ENABLED" value="false" />
|
15
|
-
<option name="IS_SUBST" value="false" />
|
16
|
-
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
|
17
|
-
<option name="IS_IGNORE_MISSING_FILES" value="false" />
|
18
|
-
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
|
19
|
-
<ENTRIES>
|
20
|
-
<ENTRY IS_ENABLED="true" PARSER="runconfig" />
|
21
|
-
</ENTRIES>
|
22
|
-
</EXTENSION>
|
23
|
-
<EXTENSION ID="org.jetbrains.plugins.ruby.rails.run.RailsRunConfigurationExtension" SCRATCH_USE_RAILS_RUNNER="false" />
|
24
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
25
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/testa_appium_driver_android_spec.rb" />
|
26
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATHS" VALUE="$PROJECT_DIR$/spec/testa_appium_driver_android_spec.rb" />
|
27
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
28
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
29
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
30
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
31
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
32
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="3.10.1" />
|
33
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
34
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
35
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
36
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
37
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
38
|
-
<method v="2">
|
39
|
-
<option name="Make" enabled="true" />
|
40
|
-
</method>
|
41
|
-
</configuration>
|
1
|
+
<component name="ProjectRunConfigurationManager">
|
2
|
+
<configuration default="false" name="Android Test" type="RSpecRunConfigurationType" factoryName="RSpec">
|
3
|
+
<module name="testa_appium_driver" />
|
4
|
+
<predefined_log_file enabled="true" id="RUBY_RSPEC" />
|
5
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
|
6
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$PROJECT_DIR$" />
|
7
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
8
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
9
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
10
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
11
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
12
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" ENABLE_FORKED_COVERAGE="true" />
|
13
|
+
<EXTENSION ID="net.ashald.envfile">
|
14
|
+
<option name="IS_ENABLED" value="false" />
|
15
|
+
<option name="IS_SUBST" value="false" />
|
16
|
+
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
|
17
|
+
<option name="IS_IGNORE_MISSING_FILES" value="false" />
|
18
|
+
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
|
19
|
+
<ENTRIES>
|
20
|
+
<ENTRY IS_ENABLED="true" PARSER="runconfig" />
|
21
|
+
</ENTRIES>
|
22
|
+
</EXTENSION>
|
23
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.rails.run.RailsRunConfigurationExtension" SCRATCH_USE_RAILS_RUNNER="false" />
|
24
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
25
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/testa_appium_driver_android_spec.rb" />
|
26
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATHS" VALUE="$PROJECT_DIR$/spec/testa_appium_driver_android_spec.rb" />
|
27
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
28
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
29
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
30
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
31
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
32
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="3.10.1" />
|
33
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
34
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
35
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
36
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
37
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
38
|
+
<method v="2">
|
39
|
+
<option name="Make" enabled="true" />
|
40
|
+
</method>
|
41
|
+
</configuration>
|
42
42
|
</component>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="RunConfigurationProducerService">
|
4
|
+
<option name="ignoredProducers">
|
5
|
+
<set>
|
6
|
+
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
7
|
+
</set>
|
8
|
+
</option>
|
9
|
+
</component>
|
10
|
+
</project>
|
data/.idea/sshConfigs.xml
CHANGED
@@ -5,6 +5,9 @@
|
|
5
5
|
<sshConfig authType="PASSWORD" host="supertesta.com" id="ea45cb27-d516-4292-a1f7-430f02857685" port="22" customName="Supertesta.com" nameFormat="CUSTOM" username="testa">
|
6
6
|
<option name="customName" value="Supertesta.com" />
|
7
7
|
</sshConfig>
|
8
|
+
<sshConfig authType="PASSWORD" host="testa.fun" id="54640192-a130-4edc-ac3c-f3bc32df1130" port="22" customName="testa.fun" nameFormat="CUSTOM" username="root">
|
9
|
+
<option name="customName" value="testa.fun" />
|
10
|
+
</sshConfig>
|
8
11
|
</configs>
|
9
12
|
</component>
|
10
13
|
</project>
|
data/.idea/webServers.xml
CHANGED
@@ -9,6 +9,13 @@
|
|
9
9
|
</advancedOptions>
|
10
10
|
</fileTransfer>
|
11
11
|
</webServer>
|
12
|
+
<webServer id="e1897dc5-c089-49e3-802d-1c69de9874a7" name="testa.fun" url="http://something">
|
13
|
+
<fileTransfer rootFolder="/ruby_apps" accessType="SFTP" host="testa.fun" port="22" sshConfigId="54640192-a130-4edc-ac3c-f3bc32df1130" sshConfig="testa.fun">
|
14
|
+
<advancedOptions>
|
15
|
+
<advancedOptions dataProtectionLevel="Private" keepAliveTimeout="0" passiveMode="true" shareSSLContext="true" />
|
16
|
+
</advancedOptions>
|
17
|
+
</fileTransfer>
|
18
|
+
</webServer>
|
12
19
|
</option>
|
13
20
|
</component>
|
14
21
|
</project>
|
data/.rspec
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
--format documentation
|
2
|
-
--color
|
3
|
-
--require spec_helper
|
1
|
+
--format documentation
|
2
|
+
--color
|
3
|
+
--require spec_helper
|
data/.rubocop.yml
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
AllCops:
|
2
|
-
TargetRubyVersion: 2.4
|
3
|
-
|
4
|
-
Style/StringLiterals:
|
5
|
-
Enabled: true
|
6
|
-
EnforcedStyle: double_quotes
|
7
|
-
|
8
|
-
Style/StringLiteralsInInterpolation:
|
9
|
-
Enabled: true
|
10
|
-
EnforcedStyle: double_quotes
|
11
|
-
|
12
|
-
Layout/LineLength:
|
13
|
-
Max: 120
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.4
|
3
|
+
|
4
|
+
Style/StringLiterals:
|
5
|
+
Enabled: true
|
6
|
+
EnforcedStyle: double_quotes
|
7
|
+
|
8
|
+
Style/StringLiteralsInInterpolation:
|
9
|
+
Enabled: true
|
10
|
+
EnforcedStyle: double_quotes
|
11
|
+
|
12
|
+
Layout/LineLength:
|
13
|
+
Max: 120
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
## [Unreleased]
|
2
|
-
|
3
|
-
## [0.1.0] - 2021-08-13
|
4
|
-
|
5
|
-
- Initial release
|
1
|
+
## [Unreleased]
|
2
|
+
|
3
|
+
## [0.1.0] - 2021-08-13
|
4
|
+
|
5
|
+
- Initial release
|
data/CODE_OF_CONDUCT.md
CHANGED
@@ -1,102 +1,102 @@
|
|
1
|
-
# Contributor Covenant Code of Conduct
|
2
|
-
|
3
|
-
## Our Pledge
|
4
|
-
|
5
|
-
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for
|
6
|
-
everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity
|
7
|
-
and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion,
|
8
|
-
or sexual identity and orientation.
|
9
|
-
|
10
|
-
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
11
|
-
|
12
|
-
## Our Standards
|
13
|
-
|
14
|
-
Examples of behavior that contributes to a positive environment for our community include:
|
15
|
-
|
16
|
-
* Demonstrating empathy and kindness toward other people
|
17
|
-
* Being respectful of differing opinions, viewpoints, and experiences
|
18
|
-
* Giving and gracefully accepting constructive feedback
|
19
|
-
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
|
20
|
-
* Focusing on what is best not just for us as individuals, but for the overall community
|
21
|
-
|
22
|
-
Examples of unacceptable behavior include:
|
23
|
-
|
24
|
-
* The use of sexualized language or imagery, and sexual attention or advances of any kind
|
25
|
-
* Trolling, insulting or derogatory comments, and personal or political attacks
|
26
|
-
* Public or private harassment
|
27
|
-
* Publishing others' private information, such as a physical or email address, without their explicit permission
|
28
|
-
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
29
|
-
|
30
|
-
## Enforcement Responsibilities
|
31
|
-
|
32
|
-
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take
|
33
|
-
appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive,
|
34
|
-
or harmful.
|
35
|
-
|
36
|
-
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits,
|
37
|
-
issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for
|
38
|
-
moderation decisions when appropriate.
|
39
|
-
|
40
|
-
## Scope
|
41
|
-
|
42
|
-
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing
|
43
|
-
the community in public spaces. Examples of representing our community include using an official e-mail address, posting
|
44
|
-
via an official social media account, or acting as an appointed representative at an online or offline event.
|
45
|
-
|
46
|
-
## Enforcement
|
47
|
-
|
48
|
-
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible
|
49
|
-
for enforcement at karlo.razumovic@gmail.com. All complaints will be reviewed and investigated promptly and fairly.
|
50
|
-
|
51
|
-
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
|
52
|
-
|
53
|
-
## Enforcement Guidelines
|
54
|
-
|
55
|
-
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem
|
56
|
-
in violation of this Code of Conduct:
|
57
|
-
|
58
|
-
### 1. Correction
|
59
|
-
|
60
|
-
**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the
|
61
|
-
community.
|
62
|
-
|
63
|
-
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation
|
64
|
-
and an explanation of why the behavior was inappropriate. A public apology may be requested.
|
65
|
-
|
66
|
-
### 2. Warning
|
67
|
-
|
68
|
-
**Community Impact**: A violation through a single incident or series of actions.
|
69
|
-
|
70
|
-
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including
|
71
|
-
unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding
|
72
|
-
interactions in community spaces as well as external channels like social media. Violating these terms may lead to a
|
73
|
-
temporary or permanent ban.
|
74
|
-
|
75
|
-
### 3. Temporary Ban
|
76
|
-
|
77
|
-
**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
|
78
|
-
|
79
|
-
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified
|
80
|
-
period of time. No public or private interaction with the people involved, including unsolicited interaction with those
|
81
|
-
enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
|
82
|
-
|
83
|
-
### 4. Permanent Ban
|
84
|
-
|
85
|
-
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate
|
86
|
-
behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
|
87
|
-
|
88
|
-
**Consequence**: A permanent ban from any sort of public interaction within the community.
|
89
|
-
|
90
|
-
## Attribution
|
91
|
-
|
92
|
-
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available
|
93
|
-
at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
94
|
-
|
95
|
-
Community Impact Guidelines were inspired
|
96
|
-
by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
|
97
|
-
|
98
|
-
[homepage]: https://www.contributor-covenant.org
|
99
|
-
|
100
|
-
For answers to common questions about this code of conduct, see the FAQ at
|
101
|
-
https://www.contributor-covenant.org/faq. Translations are available
|
102
|
-
at https://www.contributor-covenant.org/translations.
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for
|
6
|
+
everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity
|
7
|
+
and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion,
|
8
|
+
or sexual identity and orientation.
|
9
|
+
|
10
|
+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to a positive environment for our community include:
|
15
|
+
|
16
|
+
* Demonstrating empathy and kindness toward other people
|
17
|
+
* Being respectful of differing opinions, viewpoints, and experiences
|
18
|
+
* Giving and gracefully accepting constructive feedback
|
19
|
+
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
|
20
|
+
* Focusing on what is best not just for us as individuals, but for the overall community
|
21
|
+
|
22
|
+
Examples of unacceptable behavior include:
|
23
|
+
|
24
|
+
* The use of sexualized language or imagery, and sexual attention or advances of any kind
|
25
|
+
* Trolling, insulting or derogatory comments, and personal or political attacks
|
26
|
+
* Public or private harassment
|
27
|
+
* Publishing others' private information, such as a physical or email address, without their explicit permission
|
28
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
29
|
+
|
30
|
+
## Enforcement Responsibilities
|
31
|
+
|
32
|
+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take
|
33
|
+
appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive,
|
34
|
+
or harmful.
|
35
|
+
|
36
|
+
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits,
|
37
|
+
issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for
|
38
|
+
moderation decisions when appropriate.
|
39
|
+
|
40
|
+
## Scope
|
41
|
+
|
42
|
+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing
|
43
|
+
the community in public spaces. Examples of representing our community include using an official e-mail address, posting
|
44
|
+
via an official social media account, or acting as an appointed representative at an online or offline event.
|
45
|
+
|
46
|
+
## Enforcement
|
47
|
+
|
48
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible
|
49
|
+
for enforcement at karlo.razumovic@gmail.com. All complaints will be reviewed and investigated promptly and fairly.
|
50
|
+
|
51
|
+
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
|
52
|
+
|
53
|
+
## Enforcement Guidelines
|
54
|
+
|
55
|
+
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem
|
56
|
+
in violation of this Code of Conduct:
|
57
|
+
|
58
|
+
### 1. Correction
|
59
|
+
|
60
|
+
**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the
|
61
|
+
community.
|
62
|
+
|
63
|
+
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation
|
64
|
+
and an explanation of why the behavior was inappropriate. A public apology may be requested.
|
65
|
+
|
66
|
+
### 2. Warning
|
67
|
+
|
68
|
+
**Community Impact**: A violation through a single incident or series of actions.
|
69
|
+
|
70
|
+
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including
|
71
|
+
unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding
|
72
|
+
interactions in community spaces as well as external channels like social media. Violating these terms may lead to a
|
73
|
+
temporary or permanent ban.
|
74
|
+
|
75
|
+
### 3. Temporary Ban
|
76
|
+
|
77
|
+
**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
|
78
|
+
|
79
|
+
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified
|
80
|
+
period of time. No public or private interaction with the people involved, including unsolicited interaction with those
|
81
|
+
enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
|
82
|
+
|
83
|
+
### 4. Permanent Ban
|
84
|
+
|
85
|
+
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate
|
86
|
+
behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
|
87
|
+
|
88
|
+
**Consequence**: A permanent ban from any sort of public interaction within the community.
|
89
|
+
|
90
|
+
## Attribution
|
91
|
+
|
92
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available
|
93
|
+
at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
94
|
+
|
95
|
+
Community Impact Guidelines were inspired
|
96
|
+
by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
|
97
|
+
|
98
|
+
[homepage]: https://www.contributor-covenant.org
|
99
|
+
|
100
|
+
For answers to common questions about this code of conduct, see the FAQ at
|
101
|
+
https://www.contributor-covenant.org/faq. Translations are available
|
102
|
+
at https://www.contributor-covenant.org/translations.
|
data/Gemfile
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
# Specify your gem's dependencies in testa_appium_driver.gemspec
|
6
|
-
gemspec
|
7
|
-
|
8
|
-
gem "rake", "~> 13.0"
|
9
|
-
|
10
|
-
gem "rspec", "~> 3.0"
|
11
|
-
|
12
|
-
gem "rubocop", "~> 1.7"
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
# Specify your gem's dependencies in testa_appium_driver.gemspec
|
6
|
+
gemspec
|
7
|
+
|
8
|
+
gem "rake", "~> 13.0"
|
9
|
+
|
10
|
+
gem "rspec", "~> 3.0"
|
11
|
+
|
12
|
+
gem "rubocop", "~> 1.7"
|
data/LICENSE.txt
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
The MIT License (MIT)
|
2
|
-
|
3
|
-
Copyright (c) 2021 karlo.razumovic
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
13
|
-
all copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
-
THE SOFTWARE.
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2021 karlo.razumovic
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
CHANGED
@@ -202,12 +202,18 @@ siblings selector can only be used with xpath strategy.
|
|
202
202
|
- search_views
|
203
203
|
- spinner
|
204
204
|
- spinners
|
205
|
+
- switch
|
206
|
+
- switches
|
205
207
|
- toast
|
206
208
|
- toasts
|
207
209
|
- toolbar
|
208
210
|
- toolbars
|
209
211
|
- text_view
|
210
212
|
- text_views
|
213
|
+
- web_view
|
214
|
+
- web_views
|
215
|
+
- card_view
|
216
|
+
- card_views
|
211
217
|
|
212
218
|
Adjacent selectors
|
213
219
|
- from_parent
|
@@ -323,11 +329,15 @@ Type Selector arguments
|
|
323
329
|
|
324
330
|
# Scroll actions
|
325
331
|
- each
|
326
|
-
-
|
327
|
-
-
|
328
|
-
-
|
329
|
-
-
|
330
|
-
-
|
332
|
+
- each_down
|
333
|
+
- each_up
|
334
|
+
- each_left
|
335
|
+
- each_right
|
336
|
+
- align! (if does not exist, will scroll to find)
|
337
|
+
- align_top! (if does not exist, will scroll to find)
|
338
|
+
- align_bottom! (if does not exist, will scroll to find)
|
339
|
+
- align_left! (if does not exist, will scroll to find)
|
340
|
+
- align_right! (if does not exist, will scroll to find)
|
331
341
|
- align
|
332
342
|
- align_top
|
333
343
|
- align_bottom
|
@@ -355,6 +365,9 @@ Type Selector arguments
|
|
355
365
|
- as_scrollable
|
356
366
|
- wait_until_exists
|
357
367
|
- wait_while_exists
|
368
|
+
- wait_until
|
369
|
+
- wait_while
|
370
|
+
- when_exists
|
358
371
|
- exists?
|
359
372
|
- long_tap
|
360
373
|
|
data/Rakefile
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "bundler/gem_tasks"
|
4
|
-
require "rspec/core/rake_task"
|
5
|
-
|
6
|
-
RSpec::Core::RakeTask.new(:spec)
|
7
|
-
|
8
|
-
require "rubocop/rake_task"
|
9
|
-
|
10
|
-
RuboCop::RakeTask.new
|
11
|
-
|
12
|
-
task default: %i[spec rubocop]
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bundler/gem_tasks"
|
4
|
+
require "rspec/core/rake_task"
|
5
|
+
|
6
|
+
RSpec::Core::RakeTask.new(:spec)
|
7
|
+
|
8
|
+
require "rubocop/rake_task"
|
9
|
+
|
10
|
+
RuboCop::RakeTask.new
|
11
|
+
|
12
|
+
task default: %i[spec rubocop]
|
data/bin/console
CHANGED
@@ -1,17 +1,17 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require "bundler/setup"
|
5
|
-
|
6
|
-
#noinspection RubyResolve
|
7
|
-
require "testa_appium_driver"
|
8
|
-
|
9
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
10
|
-
# with your gem easier. You can also use a different console, if you like.
|
11
|
-
|
12
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
13
|
-
# require "pry"
|
14
|
-
# Pry.start
|
15
|
-
|
16
|
-
require "irb"
|
17
|
-
IRB.start(__FILE__)
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "bundler/setup"
|
5
|
+
|
6
|
+
#noinspection RubyResolve
|
7
|
+
require "testa_appium_driver"
|
8
|
+
|
9
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
10
|
+
# with your gem easier. You can also use a different console, if you like.
|
11
|
+
|
12
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
13
|
+
# require "pry"
|
14
|
+
# Pry.start
|
15
|
+
|
16
|
+
require "irb"
|
17
|
+
IRB.start(__FILE__)
|
data/bin/setup
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
set -euo pipefail
|
3
|
-
IFS=$'\n\t'
|
4
|
-
set -vx
|
5
|
-
|
6
|
-
bundle install
|
7
|
-
|
8
|
-
# Do any other automated setup that you need to do here
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -euo pipefail
|
3
|
+
IFS=$'\n\t'
|
4
|
+
set -vx
|
5
|
+
|
6
|
+
bundle install
|
7
|
+
|
8
|
+
# Do any other automated setup that you need to do here
|