mobpage 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []