ProMotion 1.0.4 → 1.1.0.rc1
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 +4 -4
- data/ProMotion.gemspec +3 -2
- data/README.md +10 -7
- data/app/screens/basic_screen.rb +12 -0
- data/bin/promotion +45 -0
- data/lib/ProMotion/cocoatouch/table_view_controller.rb +2 -2
- data/lib/ProMotion/cocoatouch/view_controller.rb +2 -2
- data/lib/ProMotion/containers/split_screen.rb +6 -1
- data/lib/ProMotion/containers/tabs.rb +12 -1
- data/lib/ProMotion/delegate/delegate_module.rb +16 -2
- data/lib/ProMotion/delegate/delegate_notifications.rb +7 -7
- data/lib/ProMotion/map/map_screen_annotation.rb +10 -1
- data/lib/ProMotion/map/map_screen_module.rb +8 -3
- data/lib/ProMotion/pro_motion.rb +1 -1
- data/lib/ProMotion/screen/screen_module.rb +35 -16
- data/lib/ProMotion/screen/screen_navigation.rb +11 -13
- data/lib/ProMotion/table/extensions/indexable.rb +2 -2
- data/lib/ProMotion/table/extensions/searchable.rb +4 -3
- data/lib/ProMotion/table/grouped_table.rb +7 -2
- data/lib/ProMotion/table/table.rb +54 -47
- data/lib/ProMotion/thirdparty/formotion_screen.rb +5 -3
- data/lib/ProMotion/version.rb +1 -1
- data/lib/ProMotion/view/styling.rb +33 -20
- data/resources/test.png +0 -0
- data/spec/functional/func_map_screen_spec.rb +60 -3
- data/spec/functional/func_screen_spec.rb +29 -6
- data/spec/functional/func_searchable_table_spec.rb +13 -1
- data/spec/functional/func_split_screen_spec.rb +8 -0
- data/spec/functional/func_table_screen_spec.rb +28 -23
- data/spec/functional/func_web_screen_spec.rb +1 -1
- data/spec/helpers/custom_title_view.rb +4 -0
- data/spec/helpers/home_screen.rb +6 -0
- data/spec/helpers/table_screen.rb +23 -27
- data/spec/helpers/table_screen_formotion.rb +5 -0
- data/spec/helpers/table_screen_searchable.rb +10 -0
- data/spec/helpers/test_delegate_colors.rb +17 -0
- data/spec/helpers/test_helper.rb +5 -0
- data/spec/unit/delegate_spec.rb +79 -1
- data/spec/unit/map_spec.rb +22 -0
- data/spec/unit/screen_helpers_spec.rb +44 -35
- data/spec/unit/screen_spec.rb +45 -6
- data/spec/unit/split_screen_open_screen_spec.rb +1 -1
- data/spec/unit/tables/formotion_screen_spec.rb +6 -0
- data/spec/unit/tables/table_module_spec.rb +28 -2
- data/spec/unit/tables/table_view_cell_spec.rb +5 -4
- data/spec/unit/view_helper_spec.rb +21 -10
- metadata +28 -6
- data/resources/test.jpeg +0 -0
data/resources/test.png
ADDED
Binary file
|
@@ -6,7 +6,20 @@ describe "ProMotion::TestMapScreen functionality" do
|
|
6
6
|
rotate_device to: :portrait, button: :bottom
|
7
7
|
@map ||= TestMapScreen.new(nav_bar: true)
|
8
8
|
@map.will_appear
|
9
|
-
@map.
|
9
|
+
@map.navigationController
|
10
|
+
end
|
11
|
+
|
12
|
+
def add_image_annotation
|
13
|
+
ann = {
|
14
|
+
longitude: -82.965972900392,
|
15
|
+
latitude: 35.090648651124,
|
16
|
+
title: "My Cool Image Pin",
|
17
|
+
subtitle: "Image pin subtitle",
|
18
|
+
image: UIImage.imageNamed("test.png")
|
19
|
+
}
|
20
|
+
@map.annotations.count.should == 5
|
21
|
+
@map.add_annotation ann
|
22
|
+
@map.set_region @map.region(coordinate: @map.annotations.last.coordinate, span: [0.05, 0.05])
|
10
23
|
end
|
11
24
|
|
12
25
|
after do
|
@@ -19,8 +32,8 @@ describe "ProMotion::TestMapScreen functionality" do
|
|
19
32
|
|
20
33
|
it "should have the map properly centered" do
|
21
34
|
center_coordinate = @map.center
|
22
|
-
center_coordinate.latitude.should.be.close 35.090648651123, 0.
|
23
|
-
center_coordinate.longitude.should.be.close -82.965972900391, 0.
|
35
|
+
center_coordinate.latitude.should.be.close 35.090648651123, 0.02
|
36
|
+
center_coordinate.longitude.should.be.close -82.965972900391, 0.02
|
24
37
|
end
|
25
38
|
|
26
39
|
it "should move the map center" do
|
@@ -102,4 +115,48 @@ describe "ProMotion::TestMapScreen functionality" do
|
|
102
115
|
@map.annotations.count.should == 2
|
103
116
|
end
|
104
117
|
|
118
|
+
it "should add an image based annotation" do
|
119
|
+
add_image_annotation
|
120
|
+
@map.annotations.count.should == 6
|
121
|
+
|
122
|
+
# Checking that it conforms to the MKAnnotation protocol manually since this doesn't work in iOS 7:
|
123
|
+
# @map.annotations.last.conformsToProtocol(MKAnnotation).should.be.true
|
124
|
+
# See this 8 month old bug - https://github.com/siuying/rubymotion-protocol-bug
|
125
|
+
|
126
|
+
checking = @map.annotations.last
|
127
|
+
%w(title subtitle coordinate).each do |method|
|
128
|
+
defined?(checking.send(method.to_sym)).nil?.should.be.false
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should select an image annotation" do
|
133
|
+
add_image_annotation
|
134
|
+
@map.selected_annotations.should == nil
|
135
|
+
@map.select_annotation @map.annotations.last
|
136
|
+
wait 0.75 do
|
137
|
+
@map.selected_annotations.count.should == 1
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should select an image annotation by index" do
|
142
|
+
add_image_annotation
|
143
|
+
@map.selected_annotations.should == nil
|
144
|
+
@map.select_annotation_at 5
|
145
|
+
wait 0.75 do
|
146
|
+
@map.selected_annotations.count.should == 1
|
147
|
+
@map.selected_annotations[0].should == @map.promotion_annotation_data[5]
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should select an image annotation and check that the title is correct" do
|
152
|
+
add_image_annotation
|
153
|
+
@map.selected_annotations.should == nil
|
154
|
+
@map.select_annotation @map.annotations[5]
|
155
|
+
wait 0.75 do
|
156
|
+
@map.selected_annotations.count.should == 1
|
157
|
+
end
|
158
|
+
@map.selected_annotations.first.title.should == "My Cool Image Pin"
|
159
|
+
@map.selected_annotations.first.subtitle.should == "Image pin subtitle"
|
160
|
+
end
|
161
|
+
|
105
162
|
end
|
@@ -6,7 +6,7 @@ describe "ProMotion::Screen functional" do
|
|
6
6
|
rotate_device to: :portrait, button: :bottom
|
7
7
|
@controller ||= FunctionalScreen.new(nav_bar: true)
|
8
8
|
@root_screen = @controller
|
9
|
-
@controller.
|
9
|
+
@controller.navigationController
|
10
10
|
end
|
11
11
|
|
12
12
|
after do
|
@@ -44,8 +44,31 @@ describe "ProMotion::Screen functional" do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
end
|
47
|
+
|
47
48
|
end
|
48
49
|
|
50
|
+
it "should push another screen with animation by default" do
|
51
|
+
basic = @root_screen.open BasicScreen
|
52
|
+
wait 0.5 do
|
53
|
+
basic.animation_ts.should.be > 0.2
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should push another screen with animation when animated: true" do
|
58
|
+
basic = @root_screen.open BasicScreen, animated: true
|
59
|
+
wait 0.5 do
|
60
|
+
basic.animation_ts.should.be > 0.2
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should push another screen without animation when animated: false" do
|
65
|
+
basic = @root_screen.open BasicScreen, animated: false
|
66
|
+
wait 0.5 do
|
67
|
+
basic.animation_ts.should.be < 0.2
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
|
49
72
|
it "should allow opening and closing a modal screen" do
|
50
73
|
@basic = BasicScreen.new(nav_bar: true)
|
51
74
|
wait 0.1 do
|
@@ -91,19 +114,19 @@ describe "ProMotion::Screen functional" do
|
|
91
114
|
end
|
92
115
|
|
93
116
|
it "should pop to the root view controller" do
|
94
|
-
@root_vc = @controller.
|
95
|
-
@controller.
|
117
|
+
@root_vc = @controller.navigationController.visibleViewController
|
118
|
+
@controller.navigationController.viewControllers.count.should == 1
|
96
119
|
@controller.open BasicScreen.new
|
97
120
|
wait 0.6 do
|
98
121
|
@controller.open BasicScreen.new
|
99
122
|
wait 0.6 do
|
100
123
|
@controller.open BasicScreen.new
|
101
124
|
wait 0.6 do
|
102
|
-
@controller.
|
125
|
+
@controller.navigationController.viewControllers.count.should == 4
|
103
126
|
@controller.close to_screen: :root
|
104
127
|
wait 0.6 do
|
105
|
-
@controller.
|
106
|
-
@controller.
|
128
|
+
@controller.navigationController.viewControllers.count.should == 1
|
129
|
+
@controller.navigationController.topViewController.should == @root_vc
|
107
130
|
end
|
108
131
|
end
|
109
132
|
end
|
@@ -5,7 +5,7 @@ describe "Searchable table spec" do
|
|
5
5
|
def controller
|
6
6
|
@controller ||= TableScreenSearchable.new(nav_bar: true)
|
7
7
|
@controller.on_load
|
8
|
-
@controller.
|
8
|
+
@controller.navigationController
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should be rotated in portrait mode" do
|
@@ -41,4 +41,16 @@ describe "Searchable table spec" do
|
|
41
41
|
@controller.original_search_string.should == false
|
42
42
|
end
|
43
43
|
|
44
|
+
it "should call the start and stop searching callbacks properly" do
|
45
|
+
@controller.will_begin_search_called.should == nil
|
46
|
+
@controller.will_end_search_called.should == nil
|
47
|
+
|
48
|
+
@controller.searchDisplayControllerWillBeginSearch(@controller)
|
49
|
+
@controller.searchDisplayController(@controller, shouldReloadTableForSearchString:"North")
|
50
|
+
@controller.will_begin_search_called.should == true
|
51
|
+
|
52
|
+
@controller.searchDisplayControllerWillEndSearch(@controller)
|
53
|
+
@controller.will_end_search_called.should == true
|
54
|
+
end
|
55
|
+
|
44
56
|
end
|
@@ -63,4 +63,12 @@ describe "Split screen functional" do
|
|
63
63
|
|
64
64
|
end
|
65
65
|
|
66
|
+
it "should override the title on the button" do
|
67
|
+
rotate_device to: :portrait, button: :bottom
|
68
|
+
|
69
|
+
test_title = "Test Title"
|
70
|
+
@controller = @app.open_split_screen @master, @detail, button_title: test_title
|
71
|
+
@detail.navigationItem.leftBarButtonItem.title.should == test_title
|
72
|
+
end
|
73
|
+
|
66
74
|
end
|
@@ -6,7 +6,11 @@ describe "ProMotion::TestTableScreen functionality" do
|
|
6
6
|
rotate_device to: :portrait, button: :bottom
|
7
7
|
@controller ||= TestTableScreen.new(nav_bar: true)
|
8
8
|
@controller.on_load
|
9
|
-
@controller.
|
9
|
+
@controller.navigationController
|
10
|
+
end
|
11
|
+
|
12
|
+
def confirmation_class
|
13
|
+
TestHelper.ios7 ? UITableViewCellDeleteConfirmationButton : UITableViewCellDeleteConfirmationControl
|
10
14
|
end
|
11
15
|
|
12
16
|
it "should have a navigation bar" do
|
@@ -58,7 +62,7 @@ describe "ProMotion::TestTableScreen functionality" do
|
|
58
62
|
wait 0.25 do
|
59
63
|
# Tap the delete button
|
60
64
|
view('Just another deletable blank row').superview.superview.subviews.each do |subview|
|
61
|
-
if subview.class ==
|
65
|
+
if subview.class == confirmation_class
|
62
66
|
tap subview
|
63
67
|
wait 0.25 do
|
64
68
|
@controller.tableView(@controller.tableView, numberOfRowsInSection:0).should == 6
|
@@ -77,7 +81,7 @@ describe "ProMotion::TestTableScreen functionality" do
|
|
77
81
|
wait 0.25 do
|
78
82
|
# Tap the delete button
|
79
83
|
view('A non-deletable blank row').superview.superview.subviews.each do |subview|
|
80
|
-
if subview.class ==
|
84
|
+
if subview.class == confirmation_class
|
81
85
|
tap subview
|
82
86
|
wait 0.25 do
|
83
87
|
@controller.tableView(@controller.tableView, numberOfRowsInSection:0).should == 7
|
@@ -88,33 +92,34 @@ describe "ProMotion::TestTableScreen functionality" do
|
|
88
92
|
end
|
89
93
|
end
|
90
94
|
|
95
|
+
# Disabled by Jamon 10/16/2013 -- Bacon doesn't appear to use accessibility labels?
|
91
96
|
it "should call a method when the switch is flipped" do
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
+
# @controller.scroll_to_bottom
|
98
|
+
# tap "switch_1"
|
99
|
+
# wait 0.3 do
|
100
|
+
# @controller.tap_counter.should == 1
|
101
|
+
# end
|
97
102
|
end
|
98
103
|
|
99
104
|
it "should call the method with arguments when the switch is flipped and when the cell is tapped" do
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
105
|
+
# @controller.scroll_to_bottom
|
106
|
+
# tap "switch_3"
|
107
|
+
# wait 0.3 do
|
108
|
+
# @controller.tap_counter.should == 3
|
109
|
+
|
110
|
+
# tap "Switch With Cell Tap, Switch Action And Parameters"
|
111
|
+
# wait 0.3 do
|
112
|
+
# @controller.tap_counter.should == 13
|
113
|
+
# end
|
114
|
+
# end
|
110
115
|
end
|
111
116
|
|
112
117
|
it "should call the method with arguments when the switch is flipped" do
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
+
# @controller.scroll_to_bottom
|
119
|
+
# tap "switch_2"
|
120
|
+
# wait 0.3 do
|
121
|
+
# @controller.tap_counter.should == 3
|
122
|
+
# end
|
118
123
|
end
|
119
124
|
|
120
125
|
end
|
@@ -10,7 +10,7 @@ describe "ProMotion::TestWebScreen functionality" do
|
|
10
10
|
def controller
|
11
11
|
rotate_device to: :portrait, button: :bottom
|
12
12
|
@webscreen ||= TestWebScreen.new(nav_bar: true)
|
13
|
-
@webscreen.
|
13
|
+
@webscreen.navigationController
|
14
14
|
end
|
15
15
|
|
16
16
|
after do
|
data/spec/helpers/home_screen.rb
CHANGED
@@ -2,10 +2,6 @@ class TestTableScreen < ProMotion::TableScreen
|
|
2
2
|
|
3
3
|
attr_accessor :tap_counter, :cell_was_deleted
|
4
4
|
|
5
|
-
def promotion_table_data
|
6
|
-
@promotion_table_data
|
7
|
-
end
|
8
|
-
|
9
5
|
def on_load
|
10
6
|
self.tap_counter = 0
|
11
7
|
set_attributes self.view, { backgroundView: nil, backgroundColor: UIColor.whiteColor }
|
@@ -41,32 +37,32 @@ class TestTableScreen < ProMotion::TableScreen
|
|
41
37
|
}, {
|
42
38
|
title: "Cell Accessory Tests",
|
43
39
|
cells: [{
|
44
|
-
|
45
|
-
|
46
|
-
view: :switch,
|
47
|
-
action: :increment_counter,
|
48
|
-
accessibility_label: "switch_1"
|
49
|
-
} ,
|
50
|
-
}, {
|
51
|
-
title: "Switch With Action And Parameters",
|
52
|
-
accessory: {
|
40
|
+
title: "Switch With Action",
|
41
|
+
accessory: {
|
53
42
|
view: :switch,
|
54
|
-
action: :
|
55
|
-
|
56
|
-
accessibility_label: "switch_2"
|
43
|
+
action: :increment_counter,
|
44
|
+
accessibility_label: "switch_1"
|
57
45
|
} ,
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
46
|
+
}, {
|
47
|
+
title: "Switch With Action And Parameters",
|
48
|
+
accessory: {
|
49
|
+
view: :switch,
|
50
|
+
action: :increment_counter_by,
|
51
|
+
arguments: { number: 3 },
|
52
|
+
accessibility_label: "switch_2"
|
53
|
+
} ,
|
54
|
+
}, {
|
55
|
+
title: "Switch With Cell Tap, Switch Action And Parameters",
|
56
|
+
accessory:{
|
57
|
+
view: :switch,
|
66
58
|
action: :increment_counter_by,
|
67
|
-
arguments: { number:
|
68
|
-
|
69
|
-
|
59
|
+
arguments: { number: 3 },
|
60
|
+
accessibility_label: "switch_3"
|
61
|
+
},
|
62
|
+
action: :increment_counter_by,
|
63
|
+
arguments: { number: 10 }
|
64
|
+
}]
|
65
|
+
}]
|
70
66
|
end
|
71
67
|
|
72
68
|
def edit_profile(args={})
|
@@ -1,4 +1,5 @@
|
|
1
1
|
class TestFormotionScreen < PM::FormotionScreen
|
2
|
+
attr_accessor :submitted_form
|
2
3
|
|
3
4
|
title "Formotion Test"
|
4
5
|
|
@@ -22,4 +23,8 @@ class TestFormotionScreen < PM::FormotionScreen
|
|
22
23
|
}
|
23
24
|
end
|
24
25
|
|
26
|
+
def on_submit(form)
|
27
|
+
self.submitted_form = form
|
28
|
+
end
|
29
|
+
|
25
30
|
end
|
@@ -2,6 +2,8 @@ class TableScreenSearchable < TestTableScreen
|
|
2
2
|
|
3
3
|
searchable
|
4
4
|
|
5
|
+
attr_accessor :will_end_search_called, :will_begin_search_called
|
6
|
+
|
5
7
|
def table_data
|
6
8
|
@search_table_data ||= [{
|
7
9
|
cells: [
|
@@ -59,4 +61,12 @@ class TableScreenSearchable < TestTableScreen
|
|
59
61
|
}]
|
60
62
|
end
|
61
63
|
|
64
|
+
def will_begin_search
|
65
|
+
self.will_begin_search_called = true
|
66
|
+
end
|
67
|
+
|
68
|
+
def will_end_search
|
69
|
+
self.will_end_search_called = true
|
70
|
+
end
|
71
|
+
|
62
72
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class TestDelegateColored < TestDelegate
|
2
|
+
status_bar false
|
3
|
+
|
4
|
+
def on_load(app, options)
|
5
|
+
open BasicScreen.new(nav_bar: true)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class TestDelegateRed < TestDelegateColored
|
10
|
+
tint_color UIColor.redColor
|
11
|
+
end
|
12
|
+
|
13
|
+
# Other colors
|
14
|
+
|
15
|
+
# class TestDelegateBlack < TestDelegateColored
|
16
|
+
# tint_color UIColor.blackColor
|
17
|
+
# end
|
data/spec/unit/delegate_spec.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
describe "PM::Delegate" do
|
2
|
-
|
3
2
|
before { @subject = TestDelegate.new }
|
4
3
|
|
5
4
|
it 'should call on_load on launch' do
|
@@ -27,6 +26,53 @@ describe "PM::Delegate" do
|
|
27
26
|
|
28
27
|
end
|
29
28
|
|
29
|
+
it "should return the registered push notification types as an array" do
|
30
|
+
@subject.registered_push_notifications.should == []
|
31
|
+
bits = 0
|
32
|
+
types = []
|
33
|
+
{ badge: UIRemoteNotificationTypeBadge,
|
34
|
+
sound: UIRemoteNotificationTypeSound,
|
35
|
+
alert: UIRemoteNotificationTypeAlert,
|
36
|
+
newsstand: UIRemoteNotificationTypeNewsstandContentAvailability }.each do |symbol, bit|
|
37
|
+
UIApplication.sharedApplication.stub!(:enabledRemoteNotificationTypes, return: bit)
|
38
|
+
@subject.registered_push_notifications.should == [symbol]
|
39
|
+
|
40
|
+
bits |= bit
|
41
|
+
types << symbol
|
42
|
+
UIApplication.sharedApplication.stub!(:enabledRemoteNotificationTypes, return: bits)
|
43
|
+
@subject.registered_push_notifications.should == types
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should return false for was_launched if the app is currently active on screen" do
|
48
|
+
@subject.mock!(:on_push_notification) do |notification, was_launched|
|
49
|
+
was_launched.should.be.false
|
50
|
+
end
|
51
|
+
|
52
|
+
fake_app = Struct.new(:applicationState).new(UIApplicationStateActive)
|
53
|
+
remote_notification = PM::PushNotification.fake_notification.notification
|
54
|
+
@subject.application(fake_app, didReceiveRemoteNotification: remote_notification)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should return true for was_launched if app was launched from background" do
|
58
|
+
@subject.mock!(:on_push_notification) do |notification, was_launched|
|
59
|
+
was_launched.should.be.true
|
60
|
+
end
|
61
|
+
|
62
|
+
fake_app = Struct.new(:applicationState).new(UIApplicationStateBackground)
|
63
|
+
remote_notification = PM::PushNotification.fake_notification.notification
|
64
|
+
@subject.application(fake_app, didReceiveRemoteNotification: remote_notification)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should return true for was_launched if the app wasn't running" do
|
68
|
+
@subject.mock!(:on_push_notification) do |notification, was_launched|
|
69
|
+
was_launched.should.be.true
|
70
|
+
end
|
71
|
+
|
72
|
+
launch_options = { UIApplicationLaunchOptionsRemoteNotificationKey => PM::PushNotification.fake_notification.notification }
|
73
|
+
@subject.application(UIApplication.sharedApplication, didFinishLaunchingWithOptions:launch_options )
|
74
|
+
end
|
75
|
+
|
30
76
|
it "should set home_screen when opening a new screen" do
|
31
77
|
@subject.application(UIApplication.sharedApplication, willFinishLaunchingWithOptions: nil)
|
32
78
|
@subject.application(UIApplication.sharedApplication, didFinishLaunchingWithOptions: nil)
|
@@ -84,4 +130,36 @@ describe "PM::Delegate" do
|
|
84
130
|
@subject.called_on_unload.should == true
|
85
131
|
end
|
86
132
|
|
133
|
+
it "should handle open URL" do
|
134
|
+
url = NSURL.URLWithString("http://example.com")
|
135
|
+
sourceApplication = 'com.example'
|
136
|
+
annotation = {jamon: true}
|
137
|
+
@subject.mock!(:on_open_url) do |parameters|
|
138
|
+
parameters[:url].should == url
|
139
|
+
parameters[:source_app].should == sourceApplication
|
140
|
+
parameters[:annotation][:jamon].should.be.true
|
141
|
+
end
|
142
|
+
|
143
|
+
@subject.application(UIApplication.sharedApplication, openURL: url, sourceApplication:sourceApplication, annotation: annotation)
|
144
|
+
end
|
145
|
+
|
87
146
|
end
|
147
|
+
|
148
|
+
# iOS 7 ONLY tests
|
149
|
+
if TestHelper.ios7
|
150
|
+
describe "PM::Delegate Colors" do
|
151
|
+
|
152
|
+
before do
|
153
|
+
@subject = TestDelegateRed.new
|
154
|
+
@map = TestMapScreen.new modal: true, nav_bar: true
|
155
|
+
@map.view_will_appear(false)
|
156
|
+
@subject.open @map
|
157
|
+
end
|
158
|
+
|
159
|
+
it 'should set the application tint color on iOS 7' do
|
160
|
+
@map.view.tintColor.should == UIColor.redColor
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
164
|
+
|
165
|
+
end # End iOS 7 ONLY tests
|