mobpage 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 90e990721bbdf23f0e4429ec740b49781c765169
4
+ data.tar.gz: 6a086eb843ab68f53d909f584f955bf25023d89c
5
+ SHA512:
6
+ metadata.gz: f51fe3302589c7bf7e05d12aa0be8c59525613cf0af70f9d1032b1d47237c3d2e69ebc3efce1d5859405252361291a1608fa74ee9dd833d257aed33cd4f46bdb
7
+ data.tar.gz: 865c1317b05e6b37e4d027550c73aeec3616373649574b83122ecb3549eb954b734cd2b4e9ec00b94c5181009fdba9ff1900af80c852a4b0ef98ee153e880376
data/lib/mobpage.rb ADDED
@@ -0,0 +1,42 @@
1
+ require 'mobpage/page_object/accessors'
2
+ require 'mobpage/page_object/navigation'
3
+
4
+ module PageObject
5
+ module Accessors
6
+ alias_method :button, :single
7
+ alias_method :switch, :single
8
+ alias_method :pin, :single
9
+ alias_method :link, :single
10
+ alias_method :text_field, :single
11
+ alias_method :check_box, :single
12
+ alias_method :select_list, :single
13
+ alias_method :item_list, :single
14
+ alias_method :element, :single
15
+ alias_method :radio_button, :single
16
+ alias_method :label, :single
17
+ alias_method :image, :single
18
+ alias_method :paragraph, :single
19
+ alias_method :dialog, :single
20
+ alias_method :spinner, :single
21
+ alias_method :view_switcher, :single
22
+ alias_method :picker, :single
23
+
24
+ alias_method :buttons, :collection
25
+ alias_method :switches, :collection
26
+ alias_method :pins, :collection
27
+ alias_method :links, :collection
28
+ alias_method :text_fields, :collection
29
+ alias_method :check_boxes, :collection
30
+ alias_method :select_lists, :collection
31
+ alias_method :item_lists, :collection
32
+ alias_method :elements, :collection
33
+ alias_method :radio_buttons, :collection
34
+ alias_method :labels, :collection
35
+ alias_method :images, :collection
36
+ alias_method :paragraphs, :collection
37
+ alias_method :dialogs, :collection
38
+ alias_method :spinners, :collection
39
+ alias_method :view_switchers, :collection
40
+ alias_method :pickers, :collection
41
+ end
42
+ end
@@ -0,0 +1,47 @@
1
+ module PageObject
2
+ module Accessors
3
+
4
+ def create_standard_methods(name, identifier={}, &block)
5
+ define_method("#{name}_element") do
6
+ if identifier.has_key?(:index)
7
+ index = identifier[:index].to_i
8
+ identifier.delete(:index)
9
+ @driver.find_elements(identifier)[index]
10
+ elsif identifier.has_key?(:text)
11
+ elements = @driver.find_elements(identifier)
12
+ elements.each do |element|
13
+ return element if element.text == identifier[:text]
14
+ nil
15
+ end
16
+ elsif identifier.has_key?(:name) && identifier.has_key?(:class)
17
+ elements = @driver.find_elements(class: identifier[:class])
18
+ elements.each do |element|
19
+ return element if element.attribute('name').strip == identifier[:name].strip
20
+ nil
21
+ end
22
+ else
23
+ @driver.find_element(identifier)
24
+ end
25
+ end
26
+ end
27
+
28
+ def create_standard_methods_for_collection(name, identifier={})
29
+ define_method("#{name}_elements") do
30
+ @driver.find_elements(identifier)
31
+ end
32
+ end
33
+
34
+ def single(name, identifier={}, &block)
35
+ create_standard_methods(name, identifier)
36
+ end
37
+
38
+ def collection(name, identifier={})
39
+ create_standard_methods_for_collection(name, identifier)
40
+ end
41
+ end
42
+ end
43
+
44
+
45
+
46
+
47
+
@@ -0,0 +1,7 @@
1
+ module PageObject
2
+ module Navigation
3
+ def on(klass)
4
+ klass.new(@driver)
5
+ end
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mobpage
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Milton Davalos
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: appium_lib
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: selenium-webdriver
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Page Object DSL for iOS and Android mobile testing
42
+ email: miltondavalos@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/mobpage.rb
48
+ - lib/mobpage/page_object/accessors.rb
49
+ - lib/mobpage/page_object/navigation.rb
50
+ homepage: https://github.com/miltondavalos/MobPage
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.0.14
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: Page Object DSL for mobile testing
74
+ test_files: []