calios-uia-extension 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: afb1d699cf345ff257d2858ca30e6f85aa22e9db
4
+ data.tar.gz: 4e536b0bcd50176ec4b907feedab7b93f883b4fe
5
+ SHA512:
6
+ metadata.gz: e8fb8157b9eb74196f881f62bd9c11be7cefc350a3415d0d2b244b98abd843d694be773fc04f1a17ff156512f28ebd4765a286bb179c22b1585fb37edf2fe4d7
7
+ data.tar.gz: ad4093621889c7464d5def8a1e85dd54ac70f40c0a95b8a3692d2aea44489678f44755fb6c7b43e740878a4c357e3e2ad0b93b35fa6a3b017c5b7ad85c168e6d
@@ -0,0 +1,9 @@
1
+ require 'calabash-cucumber/core'
2
+
3
+ require 'to_boolean'
4
+
5
+ require 'calios-uia-extension/version'
6
+
7
+ require 'calios-uia-extension/uia_base'
8
+ require 'calios-uia-extension/uia_alert'
9
+ require 'calios-uia-extension/uia_popover'
@@ -0,0 +1,32 @@
1
+ require_relative 'uia_base'
2
+
3
+ class UIAAlert < UIABase
4
+ class << self
5
+ def visible?
6
+ res = execute('uia.alert() != null')
7
+ response(res)
8
+ end
9
+
10
+ def not_visible?
11
+ not self.visible?
12
+ end
13
+
14
+ def confirm
15
+ execute('uia.alert().defaultButton().tap()')
16
+ end
17
+
18
+ def cancel
19
+ execute('uia.alert().buttons()[0].tap()')
20
+ end
21
+
22
+ def button_count
23
+ res = execute('uia.alert().buttons()')
24
+ response(res).count
25
+ end
26
+
27
+ def tap(aButton)
28
+ raise 'invalid parameter' unless aButton.is_a?(String)
29
+ execute("uia.alert().buttons()['#{aButton}'].tap()")
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,23 @@
1
+ include Calabash::Cucumber::Core
2
+
3
+ class UIABase
4
+ class << self
5
+ def execute(aCommand)
6
+ Calabash::Cucumber::UIA.uia(aCommand)
7
+ end
8
+
9
+ def response(aHash)
10
+ aHash['value']
11
+ end
12
+
13
+ def response?(aHash)
14
+ response(aHash).to_boolean
15
+ end
16
+
17
+ def help
18
+ public_methods(false)
19
+ end
20
+
21
+ alias_method :h, :help
22
+ end
23
+ end
@@ -0,0 +1,18 @@
1
+ require_relative 'uia_base'
2
+
3
+ class UIAPopover < UIABase
4
+ class << self
5
+ def visible?
6
+ res = execute('uia.window().popover().isVisible()')
7
+ response?(res)
8
+ end
9
+
10
+ def not_visible?
11
+ not self.visible?
12
+ end
13
+
14
+ def dismiss
15
+ execute('uia.window().popover().dismiss()')
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,3 @@
1
+ module CaliosUIAExtension
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,9 @@
1
+ require 'minitest/autorun'
2
+ require 'minitest/reporters'
3
+
4
+ require 'calios-uia-extension'
5
+
6
+ require_relative 'stubs/calabash_cucumber_core_stub'
7
+ require_relative 'stubs/calabash_cucumber_uia_stub'
8
+
9
+ Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
@@ -0,0 +1,88 @@
1
+ require_relative 'spec_helper'
2
+
3
+ class SpecUIAAlert < Minitest::Spec
4
+ before do
5
+ $uia_command = nil
6
+ $uia_opts = nil
7
+ end
8
+
9
+ after do
10
+ # nop
11
+ end
12
+
13
+ describe 'UIAAlert' do
14
+ describe 'UIAAlert.visible?' do
15
+ it 'should call Calabash uia command with correct parameters and return correct response' do
16
+ $stub_uia_response =
17
+ {
18
+ 'status' => 'success',
19
+ 'value' => true,
20
+ 'index' => 19
21
+ }
22
+
23
+ res = UIAAlert.visible?
24
+ $uia_command.must_equal('uia.alert() != null')
25
+ res.must_equal(true)
26
+ end
27
+ end
28
+
29
+ describe 'UIAAlert.not_visible?' do
30
+ it 'should call Calabash uia command with correct parameters and return correct response' do
31
+ $stub_uia_response =
32
+ {
33
+ 'status' => 'success',
34
+ 'value' => false,
35
+ 'index' => 19
36
+ }
37
+
38
+ res = UIAAlert.not_visible?
39
+ $uia_command.must_equal('uia.alert() != null')
40
+ res.must_equal(true)
41
+ end
42
+ end
43
+
44
+ describe 'UIAAlert.confirm' do
45
+ it 'should call Calabash uia command with correct parameters' do
46
+ UIAAlert.confirm
47
+ $uia_command.must_equal('uia.alert().defaultButton().tap()')
48
+ end
49
+ end
50
+
51
+ describe 'UIAAlert.cancel' do
52
+ it 'should call Calabash uia command with correct parameters' do
53
+ UIAAlert.cancel
54
+ $uia_command.must_equal('uia.alert().buttons()[0].tap()')
55
+ end
56
+ end
57
+
58
+ describe 'UIAAlert.button_count' do
59
+ it 'should call Calabash uia command with correct parameters and return correct response' do
60
+ $stub_uia_response =
61
+ {
62
+ 'status' => 'success',
63
+ 'value' => [
64
+ '[object UIAButton]',
65
+ '[object UIAButton]'
66
+ ],
67
+ 'index' => 6
68
+ }
69
+
70
+ res = UIAAlert.button_count
71
+ $uia_command.must_equal('uia.alert().buttons()')
72
+ res.must_equal(2)
73
+ end
74
+ end
75
+
76
+ describe 'UIAAlert.tap' do
77
+ it 'should raise if called with wrong parameter type' do
78
+ proc { UIAAlert.tap(1) }.must_raise(RuntimeError)
79
+ proc { UIAAlert.tap(:Symbol) }.must_raise(RuntimeError)
80
+ end
81
+
82
+ it 'should call Calabash uia command with correct parameters' do
83
+ UIAAlert.tap('Cancel')
84
+ $uia_command.must_equal("uia.alert().buttons()['Cancel'].tap()")
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,57 @@
1
+ require_relative 'spec_helper'
2
+
3
+ class SpecUIABase < Minitest::Spec
4
+ before do
5
+ $uia_command = nil
6
+ $uia_opts = nil
7
+ end
8
+
9
+ after do
10
+ # nop
11
+ end
12
+
13
+ describe 'UIABase' do
14
+ classes = [UIAAlert, UIAPopover]
15
+ classes.each do |klass|
16
+ describe "#{klass}.execute" do
17
+ it 'should call Calabash uia method with correct parameters' do
18
+ command = 'uia.alert() != null'
19
+ klass.execute(command)
20
+ $uia_command.must_equal(command)
21
+ end
22
+ end
23
+
24
+ describe "#{klass}.response" do
25
+ it "should return 'value' from response hash" do
26
+ $stub_uia_response =
27
+ {
28
+ 'status' => 'success',
29
+ 'value' => true,
30
+ 'index' => 19
31
+ }
32
+
33
+ command = 'uia.alert() != null'
34
+ res = klass.execute(command)
35
+ $uia_command.must_equal(command)
36
+ klass.response(res).must_equal(true)
37
+ end
38
+ end
39
+
40
+ describe "#{klass}.response?" do
41
+ it "should return 'value' converted to boolean from response hash" do
42
+ $stub_uia_response =
43
+ {
44
+ 'status' => 'success',
45
+ 'value' => ':nil',
46
+ 'index' => 19
47
+ }
48
+
49
+ command = 'uia.window().popover().isVisible()'
50
+ res = klass.execute(command)
51
+ $uia_command.must_equal(command)
52
+ klass.response?(res).must_equal(false)
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,51 @@
1
+ require_relative 'spec_helper'
2
+
3
+ class SpecUIAPopover < Minitest::Spec
4
+ before do
5
+ $uia_command = nil
6
+ $uia_opts = nil
7
+ end
8
+
9
+ after do
10
+ # nop
11
+ end
12
+
13
+ describe 'UIAPopover' do
14
+ describe 'UIAPopover.visible?' do
15
+ it 'should call Calabash uia command with correct parameters and return correct response' do
16
+ $stub_uia_response =
17
+ {
18
+ 'status' => 'success',
19
+ 'value' => 1,
20
+ 'index' => 19
21
+ }
22
+
23
+ res = UIAPopover.visible?
24
+ $uia_command.must_equal('uia.window().popover().isVisible()')
25
+ res.must_equal(true)
26
+ end
27
+ end
28
+
29
+ describe 'UIAPopover.not_visible?' do
30
+ it 'should call Calabash uia command with correct parameters and return correct response' do
31
+ $stub_uia_response =
32
+ {
33
+ 'status' => 'success',
34
+ 'value' => ':nil',
35
+ 'index' => 19
36
+ }
37
+
38
+ res = UIAPopover.not_visible?
39
+ $uia_command.must_equal('uia.window().popover().isVisible()')
40
+ res.must_equal(true)
41
+ end
42
+ end
43
+
44
+ describe 'UIAPopover.dismiss' do
45
+ it 'should call Calabash uia command with correct parameters' do
46
+ UIAPopover.dismiss
47
+ $uia_command.must_equal('uia.window().popover().dismiss()')
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,10 @@
1
+ require 'calabash-cucumber/core'
2
+
3
+ module Calabash::Cucumber::Core
4
+
5
+ end
6
+
7
+ class CalabashCucumberCoreStubClass
8
+ include Calabash::Cucumber::Core
9
+ include Calabash::Cucumber::UIA
10
+ end
@@ -0,0 +1,13 @@
1
+ require 'calabash-cucumber/uia'
2
+
3
+ module Calabash::Cucumber::UIA
4
+ def uia(command,options={})
5
+ $uia_command = command
6
+ $uia_opts = options
7
+ $stub_uia_response
8
+ end
9
+ end
10
+
11
+ class CalabashCucumberUIAStubClass
12
+ include Calabash::Cucumber::UIA
13
+ end
metadata ADDED
@@ -0,0 +1,132 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: calios-uia-extension
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jani Jegoroff
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: calabash-cucumber
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.9.169
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.9.169
27
+ - !ruby/object:Gem::Dependency
28
+ name: to_boolean
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-reporters
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
83
+ description: Calabash-ios UIA extension provides convenient metaclasses for UIAutomation
84
+ commands usage in Calabash.
85
+ email:
86
+ - jani.jegoroff@gmail.com
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - lib/calios-uia-extension.rb
92
+ - lib/calios-uia-extension/uia_alert.rb
93
+ - lib/calios-uia-extension/uia_base.rb
94
+ - lib/calios-uia-extension/uia_popover.rb
95
+ - lib/calios-uia-extension/version.rb
96
+ - spec/spec_helper.rb
97
+ - spec/spec_uia_alert.rb
98
+ - spec/spec_uia_base.rb
99
+ - spec/spec_uia_popover.rb
100
+ - spec/stubs/calabash_cucumber_core_stub.rb
101
+ - spec/stubs/calabash_cucumber_uia_stub.rb
102
+ homepage: http://github.com/JaniJegoroff/calios-uia-extension
103
+ licenses:
104
+ - MIT
105
+ metadata: {}
106
+ post_install_message:
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 2.2.2
123
+ signing_key:
124
+ specification_version: 4
125
+ summary: Calabash-ios UIA extension.
126
+ test_files:
127
+ - spec/spec_helper.rb
128
+ - spec/spec_uia_alert.rb
129
+ - spec/spec_uia_base.rb
130
+ - spec/spec_uia_popover.rb
131
+ - spec/stubs/calabash_cucumber_core_stub.rb
132
+ - spec/stubs/calabash_cucumber_uia_stub.rb