osaka 0.2.3 → 0.3.0

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.
@@ -13,16 +13,16 @@ describe "TextEdit" do
13
13
 
14
14
  it "should set the window on activation" do
15
15
  @wrapper.should_receive(:activate)
16
- @wrapper.should_receive(:window).and_return(nil)
16
+ @wrapper.should_receive(:current_window_name).and_return("")
17
17
  subject.should_receive(:wait_for_new_window).with([])
18
18
  @wrapper.should_receive(:window_list).and_return(["Untitled"])
19
- @wrapper.should_receive(:window=).with("Untitled")
19
+ @wrapper.should_receive(:set_current_window).with("Untitled")
20
20
  subject.activate
21
21
  end
22
22
 
23
23
  it "shouldn't set the window on activation when it is already set" do
24
24
  @wrapper.should_receive(:activate)
25
- @wrapper.should_receive(:window).and_return("Untitled")
25
+ @wrapper.should_receive(:current_window_name).and_return("Untitled")
26
26
  subject.activate
27
27
  end
28
28
 
@@ -9,27 +9,48 @@ describe "Osaka::TypicalApplication" do
9
9
 
10
10
  before (:each) do
11
11
  @wrapper = subject.wrapper = double("Osaka::ApplicationWrapper")
12
+ Osaka::ScriptRunner.enable_debug_prints
12
13
  end
13
14
 
14
- it "Should pass the right open string to the Keynote application osascript" do
15
+ after (:each) do
16
+ Osaka::ScriptRunner.disable_debug_prints
17
+ end
18
+
19
+ it "Should pass the right open string to the application osascript" do
15
20
  filename = "filename.key"
16
21
  expect_tell("open \"#{File.absolute_path(filename)}\"")
17
- @wrapper.should_receive(:window=).with(filename)
22
+ @wrapper.should_receive(:set_current_window).with(filename)
18
23
  subject.open(filename)
19
24
  end
20
25
 
26
+ it "Should only get the basename of the filename when it sets the window title." do
27
+ filename = "/root/dirname/filename.key"
28
+ expect_tell("open \"#{File.absolute_path(filename)}\"")
29
+ @wrapper.should_receive(:set_current_window).with("filename.key")
30
+ subject.open(filename)
31
+ end
32
+
21
33
  it "Should be able to quit" do
34
+ @wrapper.should_receive(:running?).and_return(true)
22
35
  @wrapper.should_receive(:quit)
23
36
  subject.quit
24
37
  end
25
38
 
39
+ it "Should be able to check if its running" do
40
+ @wrapper.should_receive(:running?)
41
+ subject.running?
42
+ end
43
+
44
+ it "Won't quit when the application isn't running" do
45
+ @wrapper.should_receive(:running?).and_return(false)
46
+ subject.quit(:dont_save)
47
+ end
48
+
26
49
  it "Should be able to quit without saving" do
27
- @wrapper.should_receive(:window).any_number_of_times.and_return("Untitled")
50
+ @wrapper.should_receive(:running?).and_return(true, true, false)
28
51
  @wrapper.should_receive(:quit)
29
- should_do_until!(:not_exists, "window \"Untitled\"") {
30
- should_check!(:exists, "sheet 1 of window \"Untitled\"", true)
31
- expect_click!('button 2 of sheet 1 of window "Untitled"')
32
- }
52
+ should_check!(:exists, at.sheet(1), true)
53
+ expect_click!(at.button(2).sheet(1))
33
54
  subject.quit(:dont_save)
34
55
  end
35
56
 
@@ -52,7 +73,7 @@ describe "Osaka::TypicalApplication" do
52
73
  subject.wrapper.should_receive(:window_list)
53
74
  expect_keystroke("n", :command)
54
75
  subject.should_receive(:wait_for_new_window).and_return("new_window")
55
- subject.wrapper.should_receive(:window=).with("new_window")
76
+ subject.wrapper.should_receive(:set_current_window).with("new_window")
56
77
  subject.wrapper.should_receive(:focus)
57
78
  subject.new_document
58
79
  end
@@ -62,6 +83,14 @@ describe "Osaka::TypicalApplication" do
62
83
  subject.save
63
84
  end
64
85
 
86
+ it "Should be able to save as a file" do
87
+ save_dialog = double("Osaka::TypicalSaveDialog")
88
+ subject.should_receive(:save_dialog).and_return(save_dialog)
89
+ save_dialog.should_receive(:save).with("filename")
90
+ subject.wrapper.should_receive(:set_current_window).with("filename")
91
+ subject.save_as("filename")
92
+ end
93
+
65
94
  it "Should be able to close" do
66
95
  expect_keystroke("w", :command)
67
96
  subject.close
@@ -72,19 +101,49 @@ describe "Osaka::TypicalApplication" do
72
101
  subject.should_receive(:wait_for_window_and_dialogs_to_close).with(:dont_save)
73
102
  subject.close(:dont_save)
74
103
  end
75
-
76
- it "Should be able to activate keynote" do
104
+
105
+ it "Should be able to activate" do
77
106
  @wrapper.should_receive(:activate)
78
107
  subject.activate
79
108
  end
80
109
 
110
+ it "Should be able to focus" do
111
+ @wrapper.should_receive(:focus)
112
+ subject.focus
113
+ end
114
+
115
+ it "Should be able to copy" do
116
+ expect_keystroke("c", :command)
117
+ subject.copy
118
+ end
119
+
120
+ it "Should be able to paste" do
121
+ expect_keystroke("v", :command)
122
+ subject.paste
123
+ end
124
+
125
+ it "Should be able to cut" do
126
+ expect_keystroke("x", :command)
127
+ subject.cut
128
+ end
129
+
130
+ it "Should be able to select all" do
131
+ expect_keystroke("a", :command)
132
+ subject.select_all
133
+ end
134
+
81
135
  it "Should be able to retrieve a print dialog" do
82
136
  expect_keystroke("p", :command)
83
- @wrapper.should_receive(:construct_window_info).and_return(" of window 1")
84
- should_wait_until(:exists, "sheet 1 of window 1")
137
+ should_wait_until(:exists, at.sheet(1))
85
138
  subject.print_dialog
86
139
  end
87
140
 
141
+ it "Should be able to retrieve a save dialog" do
142
+ expect_keystroke("s", [:command, :shift])
143
+ should_wait_until(:exists, at.sheet(1))
144
+ subject.save_dialog
145
+ end
146
+
88
147
  describe "Application info" do
89
148
  it "Should be able to retrieve an application info object and parse it" do
90
149
  @wrapper.should_receive(:tell).with('get info for (path to application "ApplicationName")').and_return('name:ApplicationName.app, creation date:date "Sunday, December 21, 2008 PM 06:14:11"}')
@@ -95,23 +154,22 @@ describe "Osaka::TypicalApplication" do
95
154
 
96
155
  describe "Generic Print Dialog" do
97
156
 
98
- location = "window 1"
99
- subject { Osaka::TypicalPrintDialog.new("window 1", double(:OSAApp).as_null_object) }
157
+ subject { Osaka::TypicalPrintDialog.new(at.sheet(1), double(:OSAApp).as_null_object) }
100
158
 
101
159
  it "Should be able to save the PDF in a print dialog" do
102
160
  save_dialog_mock = double(:GenericSaveDialog)
103
161
 
104
- expect_click!('menu button "PDF" of window 1')
105
- should_wait_until!(:exists, 'menu 1 of menu button "PDF" of window 1')
162
+ expect_click!(at.menu_button("PDF").sheet(1))
163
+ should_wait_until!(:exists, at.menu(1).menu_button("PDF").sheet(1))
106
164
 
107
- expect_click!('menu item 2 of menu 1 of menu button "PDF" of window 1')
108
- should_wait_until!(:exists, 'window "Save"')
165
+ expect_click!(at.menu_item(2).menu(1).menu_button("PDF").sheet(1))
166
+ should_wait_until!(:exists, at.window("Save"))
109
167
 
110
- subject.should_receive(:create_save_dialog).with("window \"Save\"", subject.wrapper).and_return(save_dialog_mock)
168
+ subject.should_receive(:create_save_dialog).with(at.window("Save"), subject.wrapper).and_return(save_dialog_mock)
111
169
  save_dialog_mock.should_receive(:save).with("filename")
112
170
 
113
- should_do_until!(:not_exists, 'window 1') {
114
- expect_click!('checkbox 1 of window "Print"')
171
+ should_do_until!(:not_exists, at.sheet(1)) {
172
+ expect_click!(at.checkbox(1).window("Print"))
115
173
  }
116
174
 
117
175
  subject.save_as_pdf("filename")
@@ -120,7 +178,14 @@ describe "Osaka::TypicalApplication" do
120
178
 
121
179
  describe "Generic Save Dialog" do
122
180
 
123
- subject { Osaka::TypicalSaveDialog.new("window 1", double("Osaka::ApplicationWrapper").as_null_object)}
181
+ subject { Osaka::TypicalSaveDialog.new(at.sheet(1), double("Osaka::ApplicationWrapper").as_null_object)}
182
+
183
+ it "Should clone the wrapper and change the window name to Save" do
184
+ app_wrapper = double("Osaka::ApplicationWrapper")
185
+ app_cloned_wrapper = double("Osaka::ApplicationWrapper")
186
+ app_wrapper.should_receive(:clone).and_return(app_cloned_wrapper)
187
+ Osaka::TypicalSaveDialog.new(at.sheet(1), app_wrapper)
188
+ end
124
189
 
125
190
  it "Should set the filename in the test field" do
126
191
  subject.should_receive(:set_filename).with("filename")
@@ -144,22 +209,22 @@ describe "Osaka::TypicalApplication" do
144
209
  end
145
210
 
146
211
  it "Should be able to click save" do
147
- expect_click('button "Save" of window 1')
148
- should_wait_until(:not_exists, 'window 1')
212
+ expect_click(at.button("Save").sheet(1))
213
+ should_wait_until(:not_exists, at.sheet(1))
149
214
  subject.click_save
150
215
  end
151
216
 
152
217
  it "Should be able to set the filename" do
153
- subject.wrapper.should_receive(:set).with('value', 'text field 1 of window 1', "filename")
218
+ subject.wrapper.should_receive(:set).with('value', at.text_field(1).sheet(1), "filename")
154
219
  subject.set_filename("filename")
155
220
  end
156
221
 
157
222
  it "Should be able to set the path" do
158
223
  expect_keystroke("g", [ :command, :shift ])
159
- should_wait_until(:exists, "sheet 1 of window 1")
160
- subject.wrapper.should_receive(:set).with("value", "text field 1 of sheet 1 of window 1", "path")
161
- expect_click('button "Go" of sheet 1 of window 1')
162
- should_wait_until(:not_exists, "sheet 1 of window 1")
224
+ should_wait_until(:exists, at.sheet(1).sheet(1))
225
+ subject.wrapper.should_receive(:set).with("value", at.text_field(1).sheet(1).sheet(1), "path")
226
+ expect_click(at.button("Go").sheet(1).sheet(1))
227
+ should_wait_until(:not_exists, at.sheet(1).sheet(1))
163
228
  subject.set_folder("path")
164
229
  end
165
230
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: osaka
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.3
5
+ version: 0.3.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-04-14 00:00:00 +08:00
13
+ date: 2012-07-23 00:00:00 +08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -51,6 +51,9 @@ files:
51
51
  - lib/osaka/applicationwrapperexpectations.rb
52
52
  - lib/osaka/calculator.rb
53
53
  - lib/osaka/keynote.rb
54
+ - lib/osaka/keynoteflow.rb
55
+ - lib/osaka/location.rb
56
+ - lib/osaka/mailmergeflow.rb
54
57
  - lib/osaka/numbers.rb
55
58
  - lib/osaka/pages.rb
56
59
  - lib/osaka/scriptrunner.rb
@@ -59,10 +62,20 @@ files:
59
62
  - lib/osaka/version.rb
60
63
  - osaka.gemfile
61
64
  - spec/applicationwrapper_spec.rb
65
+ - spec/assets/01_first_slides.key
66
+ - spec/assets/02_second_slides.key
67
+ - spec/assets/03_third_slides.key
68
+ - spec/assets/mail_merge_data.numbers
69
+ - spec/assets/mail_merge_template.pages
62
70
  - spec/calculator_spec.rb
63
71
  - spec/integration_calculator_spec.rb
72
+ - spec/integration_keynote_spec.rb
73
+ - spec/integration_pages_numbers_mail_merge_spec.rb
64
74
  - spec/integration_textedit_spec.rb
75
+ - spec/keynote_flows_spec.rb
65
76
  - spec/keynote_spec.rb
77
+ - spec/location_spec.rb
78
+ - spec/mailmergeflow_spec.rb
66
79
  - spec/numbers_spec.rb
67
80
  - spec/pages_spec.rb
68
81
  - spec/scriptrunner_spec.rb