osaka 0.3.2 → 0.4.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.
@@ -1,104 +1,43 @@
1
1
  # encoding: utf-8
2
2
  module Osaka
3
3
 
4
- class TypicalSaveDialog
5
- attr_accessor :wrapper
6
-
7
- def initialize(self_location, wrapper)
8
- @self_location = self_location
9
- @wrapper = wrapper.clone
10
- @wrapper.set_current_window("") if self_location.has_top_level_element?
11
- end
12
-
13
- def set_filename(filename)
14
- @wrapper.set("value", at.text_field(1) + @self_location, filename)
15
- end
16
-
17
- def set_folder(pathname)
18
- @wrapper.keystroke("g", [ :command, :shift ]).wait_until_exists(at.sheet(1) + @self_location)
19
- @wrapper.set("value", at.text_field(1).sheet(1) + @self_location, pathname)
20
- @wrapper.click(at.button("Go").sheet(1) + @self_location).wait_until_not_exists(at.sheet(1) + @self_location)
21
- end
22
-
23
- def click_save
24
- @wrapper.click(at.button("Save") + @self_location).wait_until_not_exists(@self_location)
25
- end
26
-
27
- def save(filename)
28
- set_filename(File.basename(filename))
29
- set_folder(File.dirname(filename)) unless File.dirname(filename) == "."
30
- click_save
31
- end
32
-
33
- end
34
-
35
- class TypicalPrintDialog
36
- attr_accessor :wrapper
37
-
38
- def initialize(parent, wrapper)
39
- @parent = parent
40
- @wrapper = wrapper
41
- end
42
-
43
- def create_save_dialog(location, app)
44
- TypicalSaveDialog.new(location, app)
45
- end
46
-
47
- def save_as_pdf(filename)
48
- @wrapper.click!(at.menu_button("PDF") + @parent).wait_until_exists!(at.menu(1).menu_button("PDF") + @parent)
49
- @wrapper.click!(at.menu_item(2).menu(1).menu_button("PDF") + @parent)
50
-
51
- save_location = @wrapper.wait_until_exists!(at.window("Save"), at.sheet(1).window("Print"))
52
- save_dialog = create_save_dialog(save_location, @wrapper)
53
- save_dialog.save(filename)
54
-
55
- @wrapper.until_not_exists!(@parent) {
56
- # Weird, but sometimes the dialog "hangs around" and clicking this checkbox will make it go away.
57
- # Anyone who knows a better solution, please let me know!
58
- # This is for snow leopard
59
- @wrapper.click!(at.checkbox(1) + @parent) if @wrapper.exists(at.checkbox(1) + @parent)
60
- }
61
- end
62
- end
63
-
64
4
  class ApplicationInfo
65
5
 
66
6
  attr_reader :name
67
7
 
68
8
  def initialize(script_info)
69
9
  @name = script_info.match(/name:(.+?), creation date/)[1]
70
- end
71
-
10
+ end
72
11
  end
73
12
 
74
13
  class TypicalApplication
75
14
 
76
- attr_accessor :wrapper
15
+ attr_accessor :control
77
16
 
78
17
  def initialize(name)
79
18
  @name = name
80
- @wrapper = ApplicationWrapper.new(name)
19
+ @control = RemoteControl.new(name)
81
20
  end
82
21
 
83
22
  def initialize_copy(other)
84
23
  super
85
- @wrapper = other.wrapper.clone
24
+ @control = other.control.clone
86
25
  end
87
26
 
88
27
  def get_info
89
- script_info = @wrapper.tell("get info for (path to application \"#{@name}\")")
28
+ script_info = control.tell("get info for (path to application \"#{@name}\")")
90
29
  ApplicationInfo.new(script_info)
91
30
  end
92
31
 
93
32
  def open (filename)
94
33
  abolutePathFileName = File.absolute_path(filename)
95
- @wrapper.tell("open \"#{abolutePathFileName}\"")
96
- @wrapper.set_current_window(File.basename(filename))
34
+ control.tell("open \"#{abolutePathFileName}\"")
35
+ control.set_current_window(File.basename(filename))
97
36
  end
98
37
 
99
38
  def wait_for_window_and_dialogs_to_close(option)
100
39
  if (option != :user_chose)
101
- @wrapper.until_not_exists!(@wrapper.current_window_location) {
40
+ control.until_not_exists!(control.base_location) {
102
41
  close_dialog_sheet_with_dont_save
103
42
  }
104
43
  end
@@ -106,44 +45,44 @@ module Osaka
106
45
 
107
46
  def wait_for_application_to_quit(option)
108
47
  if (option != :user_chose)
109
- while @wrapper.running?
48
+ while control.running?
110
49
  close_dialog_sheet_with_dont_save
111
50
  end
112
51
  end
113
52
  end
114
53
 
115
54
  def close_dialog_sheet_with_dont_save
116
- if (@wrapper.exists(at.sheet(1)))
117
- @wrapper.click!(at.button("Don’t Save").sheet(1))
55
+ if (control.exists?(at.sheet(1)))
56
+ control.click!(at.button("Don’t Save").sheet(1))
118
57
  end
119
58
  end
120
59
 
121
60
  def quit(option = :user_chose)
122
- if @wrapper.running?
123
- @wrapper.quit
61
+ if control.running?
62
+ control.quit
124
63
  wait_for_application_to_quit(option)
125
64
  end
126
65
  end
127
66
 
128
67
  def do_and_wait_for_new_window
129
- @wrapper.activate
130
- latest_window_list = original_window_list = @wrapper.window_list
68
+ control.activate
69
+ latest_window_list = original_window_list = control.window_list
131
70
  yield
132
71
  while (original_window_list == latest_window_list)
133
- latest_window_list = @wrapper.window_list
72
+ latest_window_list = control.window_list
134
73
  end
135
74
  (latest_window_list - original_window_list)[0]
136
75
  end
137
76
 
138
77
  def new_document
139
- @wrapper.set_current_window(do_and_wait_for_new_window {
140
- @wrapper.keystroke("n", :command)
78
+ control.set_current_window(do_and_wait_for_new_window {
79
+ control.keystroke("n", :command)
141
80
  })
142
- @wrapper.focus
81
+ control.focus
143
82
  end
144
83
 
145
84
  def duplicate_available?
146
- @wrapper.exists(at.menu_item("Duplicate").menu(1).menu_bar_item("File").menu_bar(1))
85
+ control.exists?(at.menu_item("Duplicate").menu(1).menu_bar_item("File").menu_bar(1))
147
86
  end
148
87
 
149
88
  def duplicate
@@ -151,90 +90,93 @@ module Osaka
151
90
  raise(Osaka::VersioningError, "MacOS Versioning Error: Duplicate is not available on this Mac version")
152
91
  end
153
92
  new_window = do_and_wait_for_new_window {
154
- @wrapper.keystroke("s", [:command, :shift])
93
+ control.click_menu_bar(at.menu_item("Duplicate"), "File")
155
94
  }
156
95
  new_instance = clone
157
- new_instance.wrapper.set_current_window(do_and_wait_for_new_window {
96
+ new_instance.control.set_current_window(do_and_wait_for_new_window {
158
97
  sleep(0.4) # This sleep is added because mountain lion keynote crashes without it!
159
- @wrapper.keystroke!(:return)
160
- })
98
+ control.keystroke!(:return)
99
+ }) unless control.mac_version == :lion
161
100
 
162
101
  new_instance
163
102
  end
164
103
 
165
104
  def save
166
- @wrapper.keystroke("s", :command)
105
+ control.keystroke("s", :command)
167
106
  end
168
107
 
169
108
  def save_pops_up_dialog?
170
- @wrapper.exists(at.menu_item("Save…").menu(1).menu_bar_item("File").menu_bar(1))
109
+ control.exists?(at.menu_item("Save…").menu(1).menu_bar_item("File").menu_bar(1))
171
110
  end
172
111
 
173
112
  def save_dialog
174
113
  if save_pops_up_dialog?
175
114
  save
176
- @wrapper.wait_until_exists(at.sheet(1))
115
+ control.wait_until_exists(at.sheet(1))
177
116
  else
178
- @wrapper.keystroke("s", [:command, :shift]).wait_until_exists(at.sheet(1))
117
+ control.keystroke("s", [:command, :shift]).wait_until_exists(at.sheet(1))
179
118
  end
180
- create_save_dialog(at.sheet(1))
119
+ create_save_dialog(at.sheet(1) + control.base_location)
181
120
  end
182
121
 
183
122
  def save_as(filename)
184
123
  if duplicate_available?
185
- new_instance = duplicate
186
- close
187
- @wrapper = new_instance.wrapper.clone
188
- end
124
+ new_instance = duplicate
125
+ close
126
+ @control = new_instance.control.clone
127
+ end
189
128
  dialog = save_dialog
190
129
  dialog.save(filename)
191
- @wrapper.set_current_window(File.basename(filename))
130
+ control.set_current_window(File.basename(filename))
192
131
  end
193
132
 
194
133
  def close(option = :user_chose)
195
- @wrapper.keystroke("w", :command)
134
+ control.keystroke("w", :command)
196
135
  wait_for_window_and_dialogs_to_close(option)
197
136
  end
198
137
 
199
138
  def activate
200
- @wrapper.activate
139
+ if (control.mac_version == :lion)
140
+ control.launch unless control.running?
141
+ end
142
+ control.activate
201
143
  end
202
144
 
203
145
  def focus
204
- @wrapper.focus
146
+ control.focus
205
147
  end
206
148
 
207
149
  def running?
208
- @wrapper.running?
150
+ control.running?
209
151
  end
210
152
 
211
153
  def copy
212
- @wrapper.keystroke("c", :command)
154
+ control.keystroke("c", :command)
213
155
  end
214
156
 
215
157
  def paste
216
- @wrapper.keystroke("v", :command)
158
+ control.keystroke("v", :command)
217
159
  end
218
160
 
219
161
  def cut
220
- @wrapper.keystroke("x", :command)
162
+ control.keystroke("x", :command)
221
163
  end
222
164
 
223
165
  def select_all
224
- @wrapper.keystroke("a", :command)
166
+ control.keystroke("a", :command)
225
167
  end
226
168
 
227
169
  def create_print_dialog(location)
228
- TypicalPrintDialog.new(location, @wrapper)
170
+ TypicalPrintDialog.new(control.name, location)
229
171
  end
230
172
 
231
173
  def create_save_dialog(location)
232
- TypicalSaveDialog.new(location, @wrapper)
174
+ TypicalSaveDialog.new(control.name, location)
233
175
  end
234
176
 
235
177
  def print_dialog
236
- @wrapper.keystroke("p", :command).wait_until_exists(at.sheet(1))
237
- create_print_dialog(at.sheet(1))
178
+ control.keystroke("p", :command).wait_until_exists(at.sheet(1))
179
+ create_print_dialog(at.sheet(1) + control.base_location)
238
180
  end
239
181
 
240
182
  end
@@ -0,0 +1,32 @@
1
+ # encoding: utf-8
2
+ module Osaka
3
+
4
+ class TypicalPrintDialog
5
+ attr_accessor :control
6
+
7
+ def initialize(application_name, own_location)
8
+ @control = Osaka::RemoteControl.new(application_name, own_location)
9
+ end
10
+
11
+ def create_save_dialog(application_name, own_location)
12
+ TypicalSaveDialog.new(application_name, own_location)
13
+ end
14
+
15
+ def save_as_pdf(filename)
16
+ control.click!(at.menu_button("PDF")).wait_until_exists!(at.menu(1).menu_button("PDF"))
17
+ control.click!(at.menu_item(2).menu(1).menu_button("PDF"))
18
+
19
+ save_location = control.wait_until_exists!(at.window("Save"), at.sheet(1) + control.base_location)
20
+ save_dialog = create_save_dialog(control.name, save_location)
21
+ save_dialog.save(filename)
22
+
23
+ control.until_not_exists!(control.base_location) {
24
+ # Weird, but sometimes the dialog "hangs around" and clicking this checkbox will make it go away.
25
+ # Anyone who knows a better solution, please let me know!
26
+ # This is for snow leopard
27
+ control.click!(at.checkbox(1)) if control.exists?(at.checkbox(1))
28
+ }
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,33 @@
1
+ # encoding: utf-8
2
+ module Osaka
3
+
4
+ class TypicalSaveDialog
5
+ attr_accessor :control
6
+
7
+ def initialize(application_name, own_location)
8
+ @control = Osaka::RemoteControl.new(application_name, own_location)
9
+ end
10
+
11
+ def set_filename(filename)
12
+ control.set("value", at.text_field(1), filename)
13
+ end
14
+
15
+ def set_folder(pathname)
16
+ control.keystroke("g", [ :command, :shift ]).wait_until_exists(at.sheet(1))
17
+ control.set("value", at.text_field(1).sheet(1), pathname)
18
+ control.click(at.button("Go").sheet(1)).wait_until_not_exists(at.sheet(1))
19
+ end
20
+
21
+ def click_save
22
+ control.click(at.button("Save")).wait_until_not_exists(control.base_location)
23
+ end
24
+
25
+ def save(filename)
26
+ set_filename(File.basename(filename))
27
+ set_folder(File.dirname(filename)) unless File.dirname(filename) == "."
28
+ click_save
29
+ end
30
+
31
+ end
32
+
33
+ end
data/lib/osaka/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Osaka
3
- VERSION = "0.3.2"
3
+ VERSION = "0.4.0"
4
4
  end
data/lib/osaka.rb CHANGED
@@ -1,9 +1,10 @@
1
1
 
2
2
  require 'osaka/scriptrunner'
3
3
  require 'osaka/location'
4
- require 'osaka/applicationwrapper'
5
- require 'osaka/applicationwrapperexpectations'
4
+ require 'osaka/remotecontrol'
6
5
  require 'osaka/typicalapplication'
6
+ require 'osaka/typicalsavedialog'
7
+ require 'osaka/typicalprintdialog'
7
8
  require 'osaka/pages'
8
9
  require 'osaka/numbers'
9
10
  require 'osaka/keynote'
@@ -11,4 +12,5 @@ require 'osaka/calculator'
11
12
  require 'osaka/textedit'
12
13
  require 'osaka/mailmergeflow'
13
14
  require 'osaka/keynoteflow'
15
+ require 'osaka/osakaexpectations'
14
16
 
Binary file
Binary file
@@ -3,20 +3,18 @@ require 'osaka'
3
3
 
4
4
  describe "Mac GUI Calculator" do
5
5
 
6
- include(*Osaka::ApplicationWrapperExpectations)
6
+ include(*Osaka::OsakaExpectations)
7
7
 
8
8
  subject { Osaka::Calculator.new }
9
- let(:wrapper) { subject.wrapper = double("Osaka::ApplicationWrapper")}
9
+ let(:control) { subject.control = mock("RemoteControl", :mac_version => :mountain_lion)}
10
10
 
11
11
  it "Should be setting the window when starting the Calculator" do
12
-
13
- # TODO: Fix this duplication between this and TextEdit.
14
-
15
- wrapper.should_receive(:activate)
16
- wrapper.should_receive(:current_window_name).and_return("")
12
+
13
+ expect_activate
14
+ expect_current_window_name.and_return("")
17
15
  subject.should_receive(:wait_for_new_window).with([])
18
- wrapper.should_receive(:window_list).and_return(["Calculator"])
19
- wrapper.should_receive(:set_current_window).with("Calculator")
16
+ expect_window_list.and_return(["Calculator"])
17
+ expect_set_current_window("Calculator")
20
18
  subject.activate
21
19
  end
22
20
 
@@ -31,14 +29,14 @@ describe "Mac GUI Calculator" do
31
29
  end
32
30
 
33
31
  it "Should be able to quit the calculator" do
34
- wrapper.should_receive(:running?).and_return(true)
35
- wrapper.should_receive(:quit)
32
+ expect_running?.and_return(true)
33
+ expect_quit
36
34
  subject.quit
37
35
  end
38
36
 
39
37
  it "Should be able to get the value from the screen" do
40
38
  expect_wait_until_exists!(at.static_text(1).group(1))
41
- wrapper.should_receive(:get!).with("value", at.static_text(1).group(1)).and_return("0")
39
+ expect_get!("value", at.static_text(1).group(1)).and_return("0")
42
40
  subject.result.should == "0"
43
41
  end
44
42
 
@@ -4,6 +4,7 @@ require 'osaka'
4
4
  describe "Integration tests for Keynote and Common Flows" do
5
5
 
6
6
  it "Should be able to do a combine with just one file" do
7
+
7
8
  assets_directory = File.join(File.dirname(__FILE__), "assets")
8
9
 
9
10
  keynote_file = File.join(assets_directory, "01_first_slides.key")
@@ -4,7 +4,7 @@ require 'osaka'
4
4
  describe "Integration of mail merge flow with Pages and Numbers" do
5
5
 
6
6
  it "Should mail merge the assets and generate a PDF" do
7
-
7
+
8
8
  assets_directory = File.join(File.dirname(__FILE__), "assets")
9
9
  numbers_data = File.join(assets_directory, "mail_merge_data.numbers")
10
10
  pages_template = File.join(assets_directory, "mail_merge_template.pages")
@@ -3,7 +3,7 @@ require "osaka"
3
3
 
4
4
  describe "Common flows in keynote" do
5
5
 
6
- let(:mock_keynote) { double(:Keynote)}
6
+ let(:mock_keynote) { mock("First keynote")}
7
7
 
8
8
  it "Should be able to combine just one single file" do
9
9
  Osaka::Keynote.should_receive(:new).and_return(mock_keynote)
@@ -15,8 +15,8 @@ describe "Common flows in keynote" do
15
15
  end
16
16
 
17
17
  it "Should be able to combine multiple files in one result" do
18
- mock2_keynote = double(:Keynote)
19
- mock3_keynote = double(:Keynote)
18
+ mock2_keynote = mock("Second keynote")
19
+ mock3_keynote = mock("Third keynote")
20
20
  Osaka::Keynote.should_receive(:new).and_return(mock_keynote, mock2_keynote, mock3_keynote)
21
21
  mock_keynote.should_receive(:open).with("one_file.key")
22
22
  mock_keynote.should_receive(:save_as).with("result.key")
@@ -50,7 +50,7 @@ describe "Common flows in keynote" do
50
50
  it "Should be able to combine multiple files from one directory sorted with pattern" do
51
51
  files_in_dir = [".", "..", "05_file.key", "02key.wrong", "another", "01hey.key", "last"]
52
52
  files_in_dir_to_be_used = ["dirname/01hey.key", "dirname/05_file.key"]
53
- mocked_dir = double(:Dir)
53
+ mocked_dir = mock("Directory with keynote files")
54
54
  Dir.should_receive(:new).with("dirname").and_return(mocked_dir)
55
55
  mocked_dir.should_receive(:entries).and_return(files_in_dir)
56
56
  CommonFlows.should_receive(:keynote_combine_files).with("results.key", files_in_dir_to_be_used)
data/spec/keynote_spec.rb CHANGED
@@ -3,10 +3,10 @@ require 'osaka'
3
3
 
4
4
  describe "Osaka::Keynote" do
5
5
 
6
- include(*Osaka::ApplicationWrapperExpectations)
6
+ include(*Osaka::OsakaExpectations)
7
7
 
8
8
  subject { Osaka::Keynote.new }
9
- let(:wrapper) {subject.wrapper = double("Osaka::ApplicationWrapper").as_null_object}
9
+ let(:control) {subject.control = mock("RemoteControl").as_null_object}
10
10
 
11
11
  it "Should create the correct keynote print dialog" do
12
12
  subject.create_print_dialog("window").should be_instance_of Osaka::KeynotePrintDialog
@@ -14,7 +14,7 @@ describe "Osaka::Keynote" do
14
14
 
15
15
  it "Should be possible to select all the slides in the default location" do
16
16
  slides_button_location = at.button("Slides").group(1).outline(1).scroll_area(2).splitter_group(1).splitter_group(1)
17
- expect_exists(slides_button_location).and_return(true)
17
+ expect_exists?(slides_button_location).and_return(true)
18
18
  expect_click(slides_button_location)
19
19
  subject.should_receive(:select_all)
20
20
  subject.select_all_slides
@@ -23,7 +23,7 @@ describe "Osaka::Keynote" do
23
23
  it "Should be possible to select all the slides in the alternative location" do
24
24
  slides_button_location = at.button("Slides").group(1).outline(1).scroll_area(2).splitter_group(1).splitter_group(1)
25
25
  alternative_slides_button_location = at.button("Slides").group(1).outline(1).scroll_area(1).splitter_group(1).splitter_group(1)
26
- expect_exists(slides_button_location).and_return(false)
26
+ expect_exists?(slides_button_location).and_return(false)
27
27
  expect_click(alternative_slides_button_location)
28
28
  subject.should_receive(:select_all)
29
29
  subject.select_all_slides
@@ -13,6 +13,12 @@ describe "Location path for an applescript command" do
13
13
  location.to_s.should == "location"
14
14
  end
15
15
 
16
+ it "Should be able to get the top-level element out" do
17
+ location = at.sheet(1).sheet(2).window("three")
18
+ location.top_level_element.should == at.window("three")
19
+ end
20
+
21
+
16
22
  it "Should be able to create locations using at" do
17
23
  at.button(1).to_s.should == "button 1"
18
24
  end
@@ -3,8 +3,8 @@ require "osaka"
3
3
 
4
4
  describe "Mail Merge to PDF common flow" do
5
5
 
6
- let(:mock_numbers) { double(:Numbers)}
7
- let(:mock_pages) { double(:Pages) }
6
+ let(:mock_numbers) { mock("Number")}
7
+ let(:mock_pages) { mock("Pages") }
8
8
 
9
9
  it "Should do a good mail merge with Pages and Keynote flow" do
10
10
  Osaka::Numbers.should_receive(:new).and_return(mock_numbers)
data/spec/numbers_spec.rb CHANGED
@@ -3,13 +3,12 @@ require 'osaka'
3
3
 
4
4
  describe "Osaka::Numbers" do
5
5
 
6
- include(*Osaka::ApplicationWrapperExpectations)
6
+ include(*Osaka::OsakaExpectations)
7
7
 
8
8
  subject { Osaka::Numbers.new }
9
- let(:wrapper) { subject.wrapper = double("Osaka::Number").as_null_object}
9
+ let(:control) { subject.control = mock("RemoteControl").as_null_object}
10
10
 
11
11
  it "Should be able to fill in data in cells" do
12
- # subject.wrapper.should_receive(:tell).with('tell document 1; tell sheet 1; tell table 1; set value of cell 1 of row 2 to "30"; end tell; end tell; end tell')
13
12
  expect_tell('tell document 1; tell sheet 1; tell table 1; set value of cell 1 of row 2 to "30"; end tell; end tell; end tell')
14
13
  subject.fill_cell(1, 2, "30")
15
14
  end
@@ -0,0 +1,26 @@
1
+
2
+ require 'osaka'
3
+
4
+ describe "Osakas Ruby expectations" do
5
+
6
+ include(*Osaka::OsakaExpectations)
7
+
8
+ subject { mock("RemoteControl") }
9
+ let(:control) { subject }
10
+
11
+ it "Wait until exists can be called without a code block" do
12
+ expect_wait_until_exists!(at.window(1))
13
+ subject.wait_until_exists!(at.window(1))
14
+ end
15
+
16
+ it "Wait until exists can be called with a code block" do
17
+ code_block_been_called = false
18
+ expect_wait_until_exists!(at.window(1)).and_yield
19
+
20
+ subject.wait_until_exists!(at.window(1)) {
21
+ code_block_been_called = true
22
+ }
23
+ code_block_been_called.should be_true
24
+ end
25
+
26
+ end
data/spec/pages_spec.rb CHANGED
@@ -3,16 +3,16 @@ require 'osaka'
3
3
 
4
4
  describe "Osaka::Pages" do
5
5
 
6
- include(*Osaka::ApplicationWrapperExpectations)
6
+ include(*Osaka::OsakaExpectations)
7
7
 
8
8
  subject { Osaka::Pages.new }
9
9
 
10
- let (:wrapper) { subject.wrapper = double("Osaka::ApplicationWrapper").as_null_object}
10
+ let (:control) { subject.control = mock("Remote Control").as_null_object}
11
11
 
12
12
  it "Should be able to do mail merge to a PDF flow" do
13
13
 
14
- mail_merge_dialog = double(:PagesMailMergeDialog)
15
- print_dialog = double(:GenericPrintDialog)
14
+ mail_merge_dialog = mock("Pages Mail Merge Dialog")
15
+ print_dialog = mock("Generic Print Dialog")
16
16
 
17
17
  subject.should_receive(:mail_merge).and_return(mail_merge_dialog)
18
18
  mail_merge_dialog.should_receive(:merge).and_return(print_dialog)
@@ -23,14 +23,14 @@ describe "Osaka::Pages" do
23
23
  end
24
24
 
25
25
  it "Should be able to select the Mail Merge" do
26
- wrapper.should_receive(:current_window_name).any_number_of_times.and_return("Pages.pages")
26
+ expect_current_window_name.any_number_of_times.and_return("Pages.pages")
27
27
  expect_click_menu_bar(at.menu_item(20), "Edit")
28
28
  expect_wait_until_exists(at.button("Merge").sheet(1))
29
29
  subject.mail_merge
30
30
  end
31
31
 
32
32
  it "Should click the merge button of the mail merge dialog" do
33
- wrapper.should_receive(:current_window_name).any_number_of_times.and_return("Pages.pages")
33
+ expect_current_window_name.any_number_of_times.and_return("Pages.pages")
34
34
  expect_click!(at.button("Merge").sheet(1))
35
35
  expect_wait_until_exists!(at.menu_button("PDF").window("Print"))
36
36
  subject.mail_merge.merge
@@ -39,10 +39,10 @@ end
39
39
 
40
40
  describe "Osaka::Pages Mail Merge dialog" do
41
41
 
42
- include(*Osaka::ApplicationWrapperExpectations)
42
+ include(*Osaka::OsakaExpectations)
43
43
 
44
44
  subject { Osaka::PagesMailMergeDialog.new("", nil) }
45
- let(:wrapper) {subject.wrapper = double("Osaka::ApplicationWrapper").as_null_object}
45
+ let(:control) {subject.control = mock("RemoteControl").as_null_object}
46
46
 
47
47
  it "Should be able to set the mail merge dialog to merge to new document" do
48
48
  expect_click(at.pop_up_button(2).sheet(1))