osaka 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,12 +3,12 @@ require 'osaka'
3
3
 
4
4
  describe "Osaka::TypicalApplication" do
5
5
 
6
- include(*Osaka::ApplicationWrapperExpectations)
6
+ include(*Osaka::OsakaExpectations)
7
7
 
8
8
  subject { Osaka::TypicalApplication.new("ApplicationName") }
9
9
 
10
- let(:wrapper) { subject.wrapper = double("Osaka::ApplicationWrapper") }
11
-
10
+ let(:control) { subject.control = mock("RemoteControl", :name => "ApplicationName", :base_location => "", :mac_version => :mountain_lion) }
11
+
12
12
  before (:each) do
13
13
  Osaka::ScriptRunner.enable_debug_prints
14
14
  end
@@ -17,57 +17,6 @@ describe "Osaka::TypicalApplication" do
17
17
  Osaka::ScriptRunner.disable_debug_prints
18
18
  end
19
19
 
20
- it "Should be able to clone TypicalApplications" do
21
- expect_clone
22
- subject.clone
23
- end
24
-
25
- it "Should pass the right open string to the application osascript" do
26
- filename = "filename.key"
27
- expect_tell("open \"#{File.absolute_path(filename)}\"")
28
- expect_set_current_window(filename)
29
- subject.open(filename)
30
- end
31
-
32
- it "Should only get the basename of the filename when it sets the window title." do
33
- filename = "/root/dirname/filename.key"
34
- expect_tell("open \"#{File.absolute_path(filename)}\"")
35
- expect_set_current_window("filename.key")
36
- subject.open(filename)
37
- end
38
-
39
- it "Should be able to quit" do
40
- expect_running?.and_return(true)
41
- expect_quit
42
- subject.quit
43
- end
44
-
45
- it "Should be able to check if its running" do
46
- expect_running?.and_return(true)
47
- subject.running?.should == true
48
- end
49
-
50
- it "Won't quit when the application isn't running" do
51
- expect_running?.and_return(false)
52
- subject.quit(:dont_save)
53
- end
54
-
55
- it "Should be able to quit without saving" do
56
- expect_running?.and_return(true, true, false)
57
- expect_quit
58
- expect_exists(at.sheet(1)).and_return(true)
59
- expect_click!(at.button("Don’t Save").sheet(1))
60
- subject.quit(:dont_save)
61
- end
62
-
63
- it "Should be able to create a new document" do
64
- subject.should_receive(:do_and_wait_for_new_window).and_yield.and_return("new_window")
65
- expect_keystroke("n", :command)
66
- expect_set_current_window("new_window")
67
- expect_focus
68
- subject.new_document
69
- end
70
-
71
20
  it "Should be able to do something and wait until a new window pops up" do
72
21
  expect_window_list.and_return(["original window"], ["original window"], ["original window"], ["new window", "original window"])
73
22
  expect_activate
@@ -77,208 +26,233 @@ describe "Osaka::TypicalApplication" do
77
26
  }.should == "new window"
78
27
  code_block_called.should == true
79
28
  end
80
-
81
- it "Should be able to save" do
82
- expect_keystroke("s", :command)
83
- subject.save
84
- end
85
29
 
86
- it "Should be able to save as a file without duplicate being available" do
87
- subject.should_receive(:duplicate_available?).and_return(false)
88
- save_dialog = double("Osaka::TypicalSaveDialog")
89
- subject.should_receive(:save_dialog).and_return(save_dialog)
90
- save_dialog.should_receive(:save).with("filename")
91
- expect_set_current_window("filename")
92
- subject.save_as("filename")
93
- end
94
-
95
- it "Should be able to save as a file using the duplicate..." do
96
- new_instance = mock(:TypicalApplication)
97
- new_instance_wrapper = mock(:ApplicationWrapper)
98
- save_dialog = double("Osaka::TypicalSaveDialog").as_null_object
99
-
100
- subject.should_receive(:duplicate_available?).and_return(true)
101
- subject.should_receive(:duplicate).and_return(new_instance)
102
- new_instance.should_receive(:wrapper).and_return(new_instance_wrapper)
103
- new_instance_wrapper.should_receive(:clone).and_return(wrapper)
30
+ context "Cloning and copying" do
104
31
 
105
- subject.should_receive(:close)
106
- subject.should_receive(:save_dialog).and_return(save_dialog)
107
- expect_set_current_window("filename")
108
- subject.save_as("filename")
109
- end
110
-
111
- it "Should be able to check whether Duplicate is supported" do
112
- expect_exists(at.menu_item("Duplicate").menu(1).menu_bar_item("File").menu_bar(1)).and_return(true)
113
- subject.duplicate_available?.should == true
114
- end
32
+ it "Should be able to clone TypicalApplications" do
33
+ expect_clone
34
+ subject.clone
35
+ end
115
36
 
116
- it "Should throw an exception when duplicate is not available"do
117
- subject.should_receive(:duplicate_available?).and_return(false)
118
- lambda {subject.duplicate}.should raise_error(Osaka::VersioningError, "MacOS Versioning Error: Duplicate is not available on this Mac version")
119
- end
37
+ it "Should be able to clone the typical applications and the remote controls will be different" do
38
+ subject.control.set_current_window "Original"
39
+ new_instance = subject.clone
40
+ new_instance.control.set_current_window "Clone"
41
+ subject.control.current_window_name.should == "Original"
42
+ end
120
43
 
121
- it "Should return a new keynote instance variable after duplication" do
122
- new_instance = mock(:TypicalApplication)
123
- subject.should_receive(:duplicate_available?).and_return(true)
124
- subject.should_receive(:do_and_wait_for_new_window).and_yield.and_return("duplicate window", "New name duplicate window")
125
- expect_keystroke("s", [:command, :shift])
126
- subject.should_receive(:clone).and_return(new_instance)
127
- new_instance.should_receive(:wrapper).and_return(wrapper)
128
- subject.should_receive(:sleep).with(0.4) # Avoiding Mountain Lion crash
129
- expect_keystroke!(:return)
130
- expect_set_current_window("New name duplicate window")
131
- subject.duplicate.should == new_instance
44
+ it "Should pass the right open string to the application osascript" do
45
+ filename = "filename.key"
46
+ expect_tell("open \"#{File.absolute_path(filename)}\"")
47
+ expect_set_current_window(filename)
48
+ subject.open(filename)
49
+ end
132
50
  end
133
51
 
134
- it "Should be able to close" do
135
- expect_keystroke("w", :command)
136
- subject.close
52
+ context "Opening and new document" do
53
+
54
+ it "Should only get the basename of the filename when it sets the window title." do
55
+ filename = "/root/dirname/filename.key"
56
+ expect_tell("open \"#{File.absolute_path(filename)}\"")
57
+ expect_set_current_window("filename.key")
58
+ subject.open(filename)
59
+ end
60
+
61
+ it "Should be able to create a new document" do
62
+ subject.should_receive(:do_and_wait_for_new_window).and_yield.and_return("new_window")
63
+ expect_keystroke("n", :command)
64
+ expect_set_current_window("new_window")
65
+ expect_focus
66
+ subject.new_document
67
+ end
68
+
137
69
  end
138
70
 
139
- it "Should be able to close and don't save" do
140
- expect_keystroke("w", :command)
141
- subject.should_receive(:wait_for_window_and_dialogs_to_close).with(:dont_save)
142
- subject.close(:dont_save)
143
- end
71
+ context "Quiting and closing and checking whether the app is still running" do
144
72
 
145
- it "Should be able to activate" do
146
- expect_activate
147
- subject.activate
148
- end
73
+ it "Should be able to quit" do
74
+ expect_running?.and_return(true)
75
+ expect_quit
76
+ subject.quit
77
+ end
149
78
 
150
- it "Should be able to focus" do
151
- expect_focus
152
- subject.focus
153
- end
79
+ it "Should be able to check if its running" do
80
+ expect_running?.and_return(true)
81
+ subject.running?.should be_true
82
+ end
154
83
 
155
- it "Should be able to copy" do
156
- expect_keystroke("c", :command)
157
- subject.copy
158
- end
84
+ it "Won't quit when the application isn't running" do
85
+ expect_running?.and_return(false)
86
+ subject.quit(:dont_save)
87
+ end
159
88
 
160
- it "Should be able to paste" do
161
- expect_keystroke("v", :command)
162
- subject.paste
163
- end
89
+ it "Should be able to quit without saving" do
90
+ expect_running?.and_return(true, true, false)
91
+ expect_quit
92
+ expect_exists?(at.sheet(1)).and_return(true)
93
+ expect_click!(at.button("Don’t Save").sheet(1))
94
+ subject.quit(:dont_save)
95
+ end
96
+
97
+ it "Should be able to close" do
98
+ expect_keystroke("w", :command)
99
+ subject.close
100
+ end
164
101
 
165
- it "Should be able to cut" do
166
- expect_keystroke("x", :command)
167
- subject.cut
168
- end
169
-
170
- it "Should be able to select all" do
171
- expect_keystroke("a", :command)
172
- subject.select_all
173
- end
174
-
175
- it "Should be able to retrieve a print dialog" do
176
- expect_keystroke("p", :command)
177
- expect_wait_until_exists(at.sheet(1))
178
- subject.print_dialog
179
- end
180
-
181
- it "Should be able to check whether the save will pop up a dialog or not" do
182
- expect_exists(at.menu_item("Save…").menu(1).menu_bar_item("File").menu_bar(1)).and_return(true)
183
- subject.save_pops_up_dialog?.should == true
184
- end
185
-
186
- it "Should be able to retrieve a save dialog by using save as" do
187
- subject.should_receive(:save_pops_up_dialog?).and_return(false)
188
- expect_keystroke("s", [:command, :shift])
189
- expect_wait_until_exists(at.sheet(1))
190
- subject.save_dialog
191
- end
192
-
193
- it "Should be able to retrieve a save dialog using duplicate and save" do
194
- subject.should_receive(:save_pops_up_dialog?).and_return(true)
195
- subject.should_receive(:save)
196
- expect_wait_until_exists(at.sheet(1))
197
- subject.save_dialog
198
- end
199
-
200
- describe "Application info" do
201
- it "Should be able to retrieve an application info object and parse it" do
202
- expect_tell('get info for (path to application "ApplicationName")').and_return('name:ApplicationName.app, creation date:date "Sunday, December 21, 2008 PM 06:14:11"}')
203
- app_info = subject.get_info
204
- app_info.name.should == "ApplicationName.app"
102
+ it "Should be able to close and don't save" do
103
+ expect_keystroke("w", :command)
104
+ subject.should_receive(:wait_for_window_and_dialogs_to_close).with(:dont_save)
105
+ subject.close(:dont_save)
205
106
  end
107
+
206
108
  end
207
109
 
208
- describe "Generic Print Dialog" do
110
+ context "Save and duplicate documents" do
209
111
 
210
- subject { Osaka::TypicalPrintDialog.new(at.sheet(1), double(:OSAApp).as_null_object) }
211
-
212
- it "Should be able to save the PDF in a print dialog" do
213
- save_dialog_mock = double(:GenericSaveDialog)
112
+ let(:save_dialog) { mock("Typical Save Dialog") }
113
+ let(:new_instance_control) { mock("RemoteControl") }
114
+
115
+ it "Should be able to save" do
116
+ expect_keystroke("s", :command)
117
+ subject.save
118
+ end
119
+
120
+ it "Should be able to save as a file without duplicate being available" do
121
+ subject.should_receive(:duplicate_available?).and_return(false)
214
122
 
215
- expect_click!(at.menu_button("PDF").sheet(1))
216
- expect_wait_until_exists!(at.menu(1).menu_button("PDF").sheet(1))
123
+ subject.should_receive(:save_dialog).and_return(save_dialog)
124
+ save_dialog.should_receive(:save).with("filename")
125
+ expect_set_current_window("filename")
217
126
 
218
- expect_click!(at.menu_item(2).menu(1).menu_button("PDF").sheet(1))
219
- expect_wait_until_exists!(at.window("Save"), at.sheet(1).window("Print")).and_return(at.window("Save"))
127
+ subject.save_as("filename")
128
+ end
129
+
130
+ it "Should be able to save as a file using the duplicate..." do
131
+ subject.should_receive(:duplicate_available?).and_return(true)
220
132
 
221
- subject.should_receive(:create_save_dialog).with(at.window("Save"), subject.wrapper).and_return(save_dialog_mock)
222
- save_dialog_mock.should_receive(:save).with("filename")
133
+ subject.stub_chain(:duplicate, :control, :clone).and_return(new_instance_control)
134
+ subject.should_receive(:close)
135
+ subject.stub_chain(:save_dialog, :save)
136
+ new_instance_control.should_receive(:set_current_window).with("filename")
223
137
 
224
- expect_until_not_exists!(at.sheet(1))
225
- expect_exists(at.checkbox(1).sheet(1)).and_return(true)
226
- expect_click!(at.checkbox(1).sheet(1))
138
+ subject.save_as("filename")
139
+ subject.control.should equal(new_instance_control)
140
+ end
141
+
142
+ it "Should be able to check whether Duplicate is supported" do
143
+ expect_exists?(at.menu_item("Duplicate").menu(1).menu_bar_item("File").menu_bar(1)).and_return(true)
144
+ subject.duplicate_available?.should == true
145
+ end
146
+
147
+ it "Should throw an exception when duplicate is not available"do
148
+ subject.should_receive(:duplicate_available?).and_return(false)
149
+ lambda {subject.duplicate}.should raise_error(Osaka::VersioningError, "MacOS Versioning Error: Duplicate is not available on this Mac version")
150
+ end
151
+
152
+ it "Should return a new keynote instance variable after duplication (Lion!)" do
153
+ simulate_mac_version(:lion)
154
+ subject.should_receive(:duplicate_available?).and_return(true)
227
155
 
228
- subject.save_as_pdf("filename")
156
+ expect_click_menu_bar(at.menu_item("Duplicate"), "File")
157
+ subject.should_receive(:do_and_wait_for_new_window).and_yield.and_return("duplicate window")
158
+
159
+ subject.stub_chain(:clone, :control).and_return(new_instance_control)
160
+ subject.duplicate.control.should equal(new_instance_control)
229
161
  end
230
- end
231
162
 
232
- describe "Generic Save Dialog" do
233
-
234
- subject { Osaka::TypicalSaveDialog.new(at.sheet(1), double("Osaka::ApplicationWrapper").as_null_object)}
235
-
236
- it "Should clone the wrapper and change the window name to Save" do
237
- app_wrapper = double("Osaka::ApplicationWrapper")
238
- app_cloned_wrapper = double("Osaka::ApplicationWrapper")
239
- app_wrapper.should_receive(:clone).and_return(app_cloned_wrapper)
240
- Osaka::TypicalSaveDialog.new(at.sheet(1), app_wrapper)
163
+ it "Should return a new keynote instance variable after duplication" do
164
+ subject.should_receive(:duplicate_available?).and_return(true)
165
+
166
+ expect_click_menu_bar(at.menu_item("Duplicate"), "File")
167
+ subject.should_receive(:do_and_wait_for_new_window).and_yield.and_return("duplicate window", "New name duplicate window")
168
+
169
+ subject.stub_chain(:clone, :control).and_return(new_instance_control)
170
+ subject.should_receive(:sleep).with(0.4) # Avoiding Mountain Lion crash
171
+ expect_keystroke!(:return)
172
+ new_instance_control.should_receive(:set_current_window).with("New name duplicate window")
173
+ subject.duplicate.control.should equal(new_instance_control)
241
174
  end
242
175
 
243
- it "Should set the filename in the test field" do
244
- subject.should_receive(:set_filename).with("filename")
245
- subject.should_receive(:click_save)
246
- subject.should_not_receive(:set_folder)
247
- subject.save("filename")
176
+ it "Should be able to check whether the save will pop up a dialog or not" do
177
+ expect_exists?(at.menu_item("Save…").menu(1).menu_bar_item("File").menu_bar(1)).and_return(true)
178
+ subject.save_pops_up_dialog?.should == true
248
179
  end
249
-
250
- it "Should pick only the base filename when a path is given" do
251
- subject.should_receive(:set_filename).with("filename")
252
- subject.should_receive(:set_folder)
253
- subject.should_receive(:click_save)
254
- subject.save("/path/filename")
180
+
181
+ it "Should be able to retrieve a save dialog by using save as" do
182
+ subject.should_receive(:save_pops_up_dialog?).and_return(false)
183
+ expect_keystroke("s", [:command, :shift])
184
+ expect_wait_until_exists(at.sheet(1))
185
+ subject.save_dialog
255
186
  end
187
+
188
+ it "Should be able to retrieve a save dialog using duplicate and save" do
189
+ subject.should_receive(:save_pops_up_dialog?).and_return(true)
190
+ subject.should_receive(:save)
191
+ expect_wait_until_exists(at.sheet(1))
192
+ subject.save_dialog
193
+ end
194
+
195
+ end
256
196
 
257
- it "Should set the path when a full path is given" do
258
- wrapper.as_null_object
259
- subject.should_receive(:set_filename)
260
- subject.should_receive(:set_folder).with("/path/second")
261
- subject.save("/path/second/name")
197
+ it "Should be able to activate" do
198
+ expect_activate
199
+ subject.activate
200
+ end
201
+
202
+ it "Should be able to activate and launch. This is done because activate alone in Lion lead to strange behavior" do
203
+ simulate_mac_version(:lion)
204
+ expect_running?.and_return(false)
205
+ expect_launch
206
+ expect_activate
207
+ subject.activate
208
+ end
209
+
210
+ it "Should be able to focus" do
211
+ expect_focus
212
+ subject.focus
213
+ end
214
+
215
+ context "Copy pasting" do
216
+
217
+ it "Should be able to copy" do
218
+ expect_keystroke("c", :command)
219
+ subject.copy
220
+ end
221
+
222
+ it "Should be able to paste" do
223
+ expect_keystroke("v", :command)
224
+ subject.paste
225
+ end
226
+
227
+ it "Should be able to cut" do
228
+ expect_keystroke("x", :command)
229
+ subject.cut
262
230
  end
263
231
 
264
- it "Should be able to click save" do
265
- expect_click(at.button("Save").sheet(1))
266
- expect_wait_until_not_exists(at.sheet(1))
267
- subject.click_save
232
+ end
233
+
234
+ context "Selecting things" do
235
+ it "Should be able to select all" do
236
+ expect_keystroke("a", :command)
237
+ subject.select_all
268
238
  end
239
+ end
240
+
241
+ context "Printing" do
269
242
 
270
- it "Should be able to set the filename" do
271
- wrapper.should_receive(:set).with('value', at.text_field(1).sheet(1), "filename")
272
- subject.set_filename("filename")
243
+ it "Should be able to retrieve a print dialog" do
244
+ expect_keystroke("p", :command)
245
+ expect_wait_until_exists(at.sheet(1))
246
+ subject.print_dialog
273
247
  end
248
+ end
274
249
 
275
- it "Should be able to set the path" do
276
- expect_keystroke("g", [ :command, :shift ])
277
- expect_wait_until_exists(at.sheet(1).sheet(1))
278
- expect_set("value", at.text_field(1).sheet(1).sheet(1), "path")
279
- expect_click(at.button("Go").sheet(1).sheet(1))
280
- expect_wait_until_not_exists(at.sheet(1).sheet(1))
281
- subject.set_folder("path")
250
+ describe "Application info" do
251
+ it "Should be able to retrieve an application info object and parse it" do
252
+ expect_tell('get info for (path to application "ApplicationName")').and_return('name:ApplicationName.app, creation date:date "Sunday, December 21, 2008 PM 06:14:11"}')
253
+ app_info = subject.get_info
254
+ app_info.name.should == "ApplicationName.app"
282
255
  end
283
256
  end
257
+
284
258
  end
@@ -0,0 +1,33 @@
1
+ # encoding: utf-8
2
+ require 'osaka'
3
+
4
+ describe "Osaka::TypicalPrintDialog" do
5
+
6
+ include(*Osaka::OsakaExpectations)
7
+ subject { Osaka::TypicalPrintDialog.new("App", at.window("Print")) }
8
+
9
+ let(:control) { subject.control = mock("RemoteControl", :name => "App") }
10
+
11
+ it "Should be able to save the PDF in a print dialog" do
12
+
13
+ control.stub(:base_location).and_return(at.window("Print"))
14
+
15
+ save_dialog_mock = mock("Generic Save Dialog")
16
+
17
+ expect_click!(at.menu_button("PDF"))
18
+ expect_wait_until_exists!(at.menu(1).menu_button("PDF"))
19
+
20
+ expect_click!(at.menu_item(2).menu(1).menu_button("PDF"))
21
+ expect_wait_until_exists!(at.window("Save"), at.sheet(1).window("Print")).and_return(at.window("Save"))
22
+
23
+ subject.should_receive(:create_save_dialog).with("App", at.window("Save")).and_return(save_dialog_mock)
24
+ save_dialog_mock.should_receive(:save).with("filename")
25
+
26
+ expect_until_not_exists!(at.window("Print"))
27
+ expect_exists?(at.checkbox(1)).and_return(true)
28
+ expect_click!(at.checkbox(1))
29
+
30
+ subject.save_as_pdf("filename")
31
+ end
32
+
33
+ end
@@ -0,0 +1,51 @@
1
+ # encoding: utf-8
2
+ require 'osaka'
3
+
4
+ describe "Osaka::TypicalSaveDialog" do
5
+
6
+ include(*Osaka::OsakaExpectations)
7
+ subject { Osaka::TypicalSaveDialog.new("Application", at.sheet(1))}
8
+ let(:control) { subject.control = mock("RemoteControl", :base_location => at.sheet(1)) }
9
+
10
+ it "Should set the filename in the test field" do
11
+ subject.should_receive(:set_filename).with("filename")
12
+ subject.should_receive(:click_save)
13
+ subject.should_not_receive(:set_folder)
14
+ subject.save("filename")
15
+ end
16
+
17
+ it "Should pick only the base filename when a path is given" do
18
+ subject.should_receive(:set_filename).with("filename")
19
+ subject.should_receive(:set_folder)
20
+ subject.should_receive(:click_save)
21
+ subject.save("/path/filename")
22
+ end
23
+
24
+ it "Should set the path when a full path is given" do
25
+ control.as_null_object
26
+ subject.should_receive(:set_filename)
27
+ subject.should_receive(:set_folder).with("/path/second")
28
+ subject.save("/path/second/name")
29
+ end
30
+
31
+ it "Should be able to click save" do
32
+ expect_click(at.button("Save"))
33
+ expect_wait_until_not_exists(at.sheet(1))
34
+ subject.click_save
35
+ end
36
+
37
+ it "Should be able to set the filename" do
38
+ control.should_receive(:set).with('value', at.text_field(1), "filename")
39
+ subject.set_filename("filename")
40
+ end
41
+
42
+ it "Should be able to set the path" do
43
+ expect_keystroke("g", [ :command, :shift ])
44
+ expect_wait_until_exists(at.sheet(1))
45
+ expect_set("value", at.text_field(1).sheet(1), "path")
46
+ expect_click(at.button("Go").sheet(1))
47
+ expect_wait_until_not_exists(at.sheet(1))
48
+ subject.set_folder("path")
49
+ end
50
+
51
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: osaka
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.2
5
+ version: 0.4.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Bas Vodde
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-08-13 00:00:00 -05:00
13
+ date: 2012-08-21 00:00:00 +08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -47,21 +47,22 @@ files:
47
47
  - README.rdoc
48
48
  - Rakefile
49
49
  - lib/osaka.rb
50
- - lib/osaka/applicationwrapper.rb
51
- - lib/osaka/applicationwrapperexpectations.rb
52
50
  - lib/osaka/calculator.rb
53
51
  - lib/osaka/keynote.rb
54
52
  - lib/osaka/keynoteflow.rb
55
53
  - lib/osaka/location.rb
56
54
  - lib/osaka/mailmergeflow.rb
57
55
  - lib/osaka/numbers.rb
56
+ - lib/osaka/osakaexpectations.rb
58
57
  - lib/osaka/pages.rb
58
+ - lib/osaka/remotecontrol.rb
59
59
  - lib/osaka/scriptrunner.rb
60
60
  - lib/osaka/textedit.rb
61
61
  - lib/osaka/typicalapplication.rb
62
+ - lib/osaka/typicalprintdialog.rb
63
+ - lib/osaka/typicalsavedialog.rb
62
64
  - lib/osaka/version.rb
63
65
  - osaka.gemfile
64
- - spec/applicationwrapper_spec.rb
65
66
  - spec/assets/01_first_slides.key
66
67
  - spec/assets/02_second_slides.key
67
68
  - spec/assets/03_third_slides.key
@@ -77,10 +78,14 @@ files:
77
78
  - spec/location_spec.rb
78
79
  - spec/mailmergeflow_spec.rb
79
80
  - spec/numbers_spec.rb
81
+ - spec/osakaexpectations_spec.rb
80
82
  - spec/pages_spec.rb
83
+ - spec/remotecontrol_spec.rb
81
84
  - spec/scriptrunner_spec.rb
82
85
  - spec/textedit_spec.rb
83
86
  - spec/typicalapplication_spec.rb
87
+ - spec/typicalprintdialog_spec.rb
88
+ - spec/typicalsavedialog_spec.rb
84
89
  has_rdoc: true
85
90
  homepage: https://github.com/basvodde/osaka
86
91
  licenses: []