osaka 0.4.8 → 0.4.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +7 -0
- data/README.rdoc +1 -1
- data/Rakefile +12 -2
- data/lib/osaka.rb +6 -0
- data/lib/osaka/calculator.rb +1 -1
- data/lib/osaka/commandrunner.rb +17 -0
- data/lib/osaka/defaultssystem.rb +28 -0
- data/lib/osaka/keynote.rb +8 -6
- data/lib/osaka/keynoteflow.rb +10 -2
- data/lib/osaka/launchservices.rb +29 -0
- data/lib/osaka/location.rb +1 -1
- data/lib/osaka/mailmergeflow.rb +1 -1
- data/lib/osaka/numbers.rb +1 -1
- data/lib/osaka/osakaexpectations.rb +65 -61
- data/lib/osaka/pages.rb +35 -26
- data/lib/osaka/preview.rb +1 -1
- data/lib/osaka/remotecontrol.rb +57 -47
- data/lib/osaka/scriptrunner.rb +2 -11
- data/lib/osaka/textedit.rb +1 -1
- data/lib/osaka/typicalapplication.rb +10 -4
- data/lib/osaka/typicalfinderdialog.rb +1 -1
- data/lib/osaka/typicalopendialog.rb +22 -18
- data/lib/osaka/typicalprintdialog.rb +1 -1
- data/lib/osaka/typicalsavedialog.rb +1 -1
- data/lib/osaka/version.rb +1 -1
- data/{osaka.gemfile → osaka.gemspec} +0 -0
- data/spec/assets/document.pdf +0 -0
- data/spec/calculator_spec.rb +5 -5
- data/spec/defaultssystem_spec.rb +30 -0
- data/spec/integration_calculator_spec.rb +7 -7
- data/spec/integration_keynote_spec.rb +24 -11
- data/spec/integration_numbers_spec.rb +2 -2
- data/spec/integration_pages_numbers_mail_merge_spec.rb +9 -9
- data/spec/integration_preview_spec.rb +16 -0
- data/spec/integration_textedit_spec.rb +5 -5
- data/spec/keynote_flows_spec.rb +52 -31
- data/spec/keynote_spec.rb +24 -14
- data/spec/launchservices_spec.rb +63 -0
- data/spec/location_spec.rb +13 -13
- data/spec/mailmergeflow_spec.rb +13 -13
- data/spec/numbers_spec.rb +10 -10
- data/spec/osakaexpectations_spec.rb +3 -3
- data/spec/pages_spec.rb +80 -61
- data/spec/preview_spec.rb +5 -5
- data/spec/remotecontrol_spec.rb +65 -43
- data/spec/scriptrunner_spec.rb +22 -22
- data/spec/textedit_spec.rb +3 -3
- data/spec/typicalapplication_spec.rb +119 -108
- data/spec/typicalfinderdialog_spec.rb +2 -2
- data/spec/typicalopendialog_spec.rb +41 -35
- data/spec/typicalprintdialog_spec.rb +5 -5
- data/spec/typicalsavedialog_spec.rb +10 -10
- metadata +51 -47
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'osaka'
|
2
|
+
|
3
|
+
describe "Launch Services (wrapper around lsregister)" do
|
4
|
+
|
5
|
+
before (:each) do
|
6
|
+
@dumped_registry = <<-END_OF_DUMP
|
7
|
+
Checking data integrity......done.
|
8
|
+
Status: Database is seeded.
|
9
|
+
Status: Preferences are loaded.
|
10
|
+
--------------------------------------------------------------------------------
|
11
|
+
bundle id: 54064
|
12
|
+
path: /Applications/TextMate.app
|
13
|
+
name: TextMate
|
14
|
+
category:
|
15
|
+
identifier: com.macromates.TextMate.preview (0x8005c399)
|
16
|
+
canonical id: com.macromates.textmate.preview (0x8005c38f)
|
17
|
+
version: 9515.0
|
18
|
+
mod date: 2/24/2014 14:57:26
|
19
|
+
reg date: 3/7/2014 13:22:06
|
20
|
+
type code: 'APPL'
|
21
|
+
creator code: 'avin'
|
22
|
+
sys version: 10.7
|
23
|
+
exec sdk ver: 10.8
|
24
|
+
exec os ver: 10.7
|
25
|
+
flags: relative-icon-path wildcard
|
26
|
+
item flags: container package application extension-hidden native-app scriptable x86_64
|
27
|
+
hi res: is-capabile user-can-change
|
28
|
+
app nap: is-capabile user-can-change
|
29
|
+
icon: Contents/Resources/TextMate.icns
|
30
|
+
executable: Contents/MacOS/TextMate
|
31
|
+
inode: 32052233
|
32
|
+
exec inode: 53967831
|
33
|
+
container id: 32
|
34
|
+
library: Contents/Library/
|
35
|
+
library items: QuickLook/TextMateQL.qlgenerator/
|
36
|
+
../PlugIns/Dialog.tmplugin/
|
37
|
+
../PlugIns/Dialog2.tmplugin/
|
38
|
+
--------------------------------------------------------
|
39
|
+
type id: 62684
|
40
|
+
bindableKey: 91052
|
41
|
+
generation: 20451
|
42
|
+
uti: com.macromates.textmate.snippet
|
43
|
+
description: TextMate Snippet
|
44
|
+
flags: exported active trusted
|
45
|
+
icon: Contents/Resources/TextMate Snippet.icns
|
46
|
+
conforms to: com.apple.property-list
|
47
|
+
tags: .tmsnippet
|
48
|
+
END_OF_DUMP
|
49
|
+
end
|
50
|
+
|
51
|
+
it "Can return a dump of the current database" do
|
52
|
+
expect(Osaka::CommandRunner).to receive(:run).with("/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump").and_return(@dumped_registry)
|
53
|
+
current_dump = Osaka::LaunchServices.dump
|
54
|
+
expect(current_dump).to start_with("Checking data integrity......done.\nStatus: Database is seeded.\nStatus: Preferences are loaded.\n--------------------------------------------------------------------------------")
|
55
|
+
expect(current_dump).to include("name: TextMate")
|
56
|
+
end
|
57
|
+
|
58
|
+
it "Can retrieve a value based on the bundle name" do
|
59
|
+
Osaka::CommandRunner.should_receive(:run).and_return(@dumped_registry)
|
60
|
+
Osaka::LaunchServices.retrieve("TextMate")[:id].should== "54064"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
data/spec/location_spec.rb
CHANGED
@@ -5,47 +5,47 @@ describe "Location path for an applescript command" do
|
|
5
5
|
|
6
6
|
it "Should be able to create a valid location when appending two locations" do
|
7
7
|
location = Osaka::Location.new("scrollbar") + Osaka::Location.new("window 1")
|
8
|
-
location.to_s.
|
8
|
+
expect(location.to_s).to eq "scrollbar of window 1"
|
9
9
|
end
|
10
10
|
|
11
11
|
it "Should be able to add empty locations" do
|
12
12
|
location = Osaka::Location.new("location") + ""
|
13
|
-
location.to_s.
|
13
|
+
expect(location.to_s).to eq "location"
|
14
14
|
end
|
15
15
|
|
16
16
|
it "Should be able to get the top-level element out" do
|
17
17
|
location = at.sheet(1).sheet(2).window("three")
|
18
|
-
location.top_level_element.
|
18
|
+
expect(location.top_level_element).to eq at.window("three")
|
19
19
|
end
|
20
20
|
|
21
21
|
|
22
22
|
it "Should be able to create locations using at" do
|
23
|
-
at.button(1).to_s.
|
23
|
+
expect(at.button(1).to_s).to eq "button 1"
|
24
24
|
end
|
25
25
|
|
26
26
|
it "Should be able to create empty prefixed locations" do
|
27
|
-
Osaka::Location.new("").as_prefixed_location.
|
27
|
+
expect(Osaka::Location.new("").as_prefixed_location).to eq ""
|
28
28
|
end
|
29
29
|
|
30
30
|
it "Should be able to check whether the location already has a window" do
|
31
|
-
Osaka::Location.new("").has_window
|
32
|
-
at.window("one").has_window
|
31
|
+
expect(Osaka::Location.new("").has_window?).to eq false
|
32
|
+
expect(at.window("one").has_window?).to eq true
|
33
33
|
end
|
34
34
|
|
35
35
|
it "Should be able to create groups" do
|
36
|
-
at.group(1).to_s.
|
36
|
+
expect(at.group(1).to_s).to eq "group 1"
|
37
37
|
end
|
38
38
|
|
39
39
|
it "Should be able to combine buttons with groups" do
|
40
|
-
at.button("1").group(2).to_s.
|
40
|
+
expect(at.button("1").group(2).to_s).to eq 'button "1" of group 2'
|
41
41
|
end
|
42
42
|
|
43
43
|
it "Should be able to combine groups with windows" do
|
44
|
-
at.button(1).group(2).window("Name").to_s.
|
44
|
+
expect(at.button(1).group(2).window("Name").to_s).to eq 'button 1 of group 2 of window "Name"'
|
45
45
|
end
|
46
46
|
|
47
47
|
it "Can compare different locations" do
|
48
|
-
at.button(1).
|
48
|
+
expect(at.button(1)).to eq at.button(1)
|
49
49
|
end
|
50
50
|
|
51
51
|
it "Should be able to convert to a prefixed location" do
|
@@ -53,7 +53,7 @@ describe "Location path for an applescript command" do
|
|
53
53
|
end
|
54
54
|
|
55
55
|
it "Cannot create a location with two times window" do
|
56
|
-
lambda {at.window(1).window(1)}.
|
56
|
+
expect(lambda {at.window(1).window(1)}).to raise_error(Osaka::InvalidLocation, "Invalid location: window 1 of window 1")
|
57
57
|
end
|
58
58
|
|
59
|
-
end
|
59
|
+
end
|
data/spec/mailmergeflow_spec.rb
CHANGED
@@ -3,21 +3,21 @@ require "osaka"
|
|
3
3
|
|
4
4
|
describe "Mail Merge to PDF common flow" do
|
5
5
|
|
6
|
-
let(:mock_numbers) {
|
7
|
-
let(:mock_pages) {
|
6
|
+
let(:mock_numbers) { double("Number")}
|
7
|
+
let(:mock_pages) { double("Pages") }
|
8
8
|
|
9
9
|
it "Should do a good mail merge with Pages and Keynote flow" do
|
10
10
|
|
11
|
-
Osaka::Numbers.
|
11
|
+
expect(Osaka::Numbers).to receive(:create_document).with("/template/numbers").and_yield(mock_numbers)
|
12
12
|
|
13
|
-
Osaka::Pages.
|
13
|
+
expect(Osaka::Pages).to receive(:new).and_return(mock_pages)
|
14
14
|
|
15
|
-
mock_pages.
|
16
|
-
mock_pages.
|
17
|
-
mock_pages.
|
15
|
+
expect(mock_pages).to receive(:open).with("/template/pages")
|
16
|
+
expect(mock_pages).to receive(:set_mail_merge_document).with("/template/numbers")
|
17
|
+
expect(mock_pages).to receive(:mail_merge_to_pdf).with("/output/file.pdf")
|
18
18
|
|
19
|
-
mock_pages.
|
20
|
-
mock_pages.
|
19
|
+
expect(mock_pages).to receive(:close).with(:dont_save)
|
20
|
+
expect(mock_pages).to receive(:quit).with(:dont_save)
|
21
21
|
|
22
22
|
CommonFlows.number_and_pages_mail_merge("/template/numbers", "/template/pages", "/output/file.pdf") {}
|
23
23
|
end
|
@@ -25,14 +25,14 @@ describe "Mail Merge to PDF common flow" do
|
|
25
25
|
it "Should yield for filling in the numbers fields" do
|
26
26
|
mock_numbers.as_null_object
|
27
27
|
mock_pages.as_null_object
|
28
|
-
Osaka::Numbers.
|
29
|
-
Osaka::Pages.
|
28
|
+
expect(Osaka::Numbers).to receive(:create_document).and_yield(mock_numbers)
|
29
|
+
expect(Osaka::Pages).to receive(:new).and_return(mock_pages)
|
30
30
|
|
31
31
|
retrieved_numbers = nil
|
32
32
|
CommonFlows.number_and_pages_mail_merge("1", "2", "3") { |numbers|
|
33
33
|
retrieved_numbers = numbers
|
34
34
|
}
|
35
|
-
retrieved_numbers.
|
35
|
+
expect(retrieved_numbers).to eq mock_numbers
|
36
36
|
end
|
37
37
|
|
38
|
-
end
|
38
|
+
end
|
data/spec/numbers_spec.rb
CHANGED
@@ -6,11 +6,11 @@ describe "Osaka::Numbers" do
|
|
6
6
|
include(*Osaka::OsakaExpectations)
|
7
7
|
|
8
8
|
subject { Osaka::Numbers.new }
|
9
|
-
let(:control) { subject.control =
|
9
|
+
let(:control) { subject.control = double("RemoteControl").as_null_object}
|
10
10
|
|
11
11
|
it "Should be able to get the column count" do
|
12
12
|
expect_tell('tell document 1; tell sheet 1; tell table 1; get column count; end tell; end tell; end tell').and_return("10")
|
13
|
-
subject.column_count.
|
13
|
+
expect(subject.column_count).to eq 10
|
14
14
|
end
|
15
15
|
|
16
16
|
it "Should be able to set the column count to a certain value" do
|
@@ -19,14 +19,14 @@ describe "Osaka::Numbers" do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
it "Should be able to fill in data in cells" do
|
22
|
-
subject.
|
22
|
+
expect(subject).to receive(:column_count).and_return(10)
|
23
23
|
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')
|
24
24
|
subject.fill_cell(1, 2, "30")
|
25
25
|
end
|
26
26
|
|
27
27
|
it "Will change the column count when the cell is outside of the range of the current column count" do
|
28
|
-
subject.
|
29
|
-
subject.
|
28
|
+
expect(subject).to receive(:column_count).and_return(5)
|
29
|
+
expect(subject).to receive(:set_column_count).with(6)
|
30
30
|
expect_tell('tell document 1; tell sheet 1; tell table 1; set value of cell 6 of row 2 to "30"; end tell; end tell; end tell')
|
31
31
|
subject.fill_cell(6, 2, "30")
|
32
32
|
|
@@ -34,9 +34,9 @@ describe "Osaka::Numbers" do
|
|
34
34
|
|
35
35
|
it "Should be able to select blank from the template choser" do
|
36
36
|
expect_set_current_window("Template Choser")
|
37
|
-
subject.
|
37
|
+
expect(subject).to receive(:do_and_wait_for_new_window).and_return("Template Choser")
|
38
38
|
expect_set_current_window("Untitled")
|
39
|
-
subject.
|
39
|
+
expect(subject).to receive(:do_and_wait_for_new_window).and_yield.and_return("Untitled")
|
40
40
|
expect_keystroke(:return)
|
41
41
|
subject.new_document
|
42
42
|
end
|
@@ -47,11 +47,11 @@ describe "Osaka::Numbers" do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
it "Should be able to use a class method for creating documents quickly" do
|
50
|
-
Osaka::Numbers.
|
51
|
-
subject.
|
50
|
+
expect(Osaka::Numbers).to receive(:new).at_least(1).times.and_return(double("App"))
|
51
|
+
expect(subject).to receive(:create_document)
|
52
52
|
|
53
53
|
Osaka::Numbers.create_document("filename") { |doc|
|
54
54
|
}
|
55
55
|
end
|
56
56
|
|
57
|
-
end
|
57
|
+
end
|
@@ -5,7 +5,7 @@ describe "Osakas Ruby expectations" do
|
|
5
5
|
|
6
6
|
include(*Osaka::OsakaExpectations)
|
7
7
|
|
8
|
-
subject {
|
8
|
+
subject { double("RemoteControl") }
|
9
9
|
let(:control) { subject }
|
10
10
|
|
11
11
|
it "Wait until exists can be called without a code block" do
|
@@ -20,7 +20,7 @@ describe "Osakas Ruby expectations" do
|
|
20
20
|
subject.wait_until_exists!(at.window(1)) {
|
21
21
|
code_block_been_called = true
|
22
22
|
}
|
23
|
-
code_block_been_called.
|
23
|
+
expect(code_block_been_called).to be true
|
24
24
|
end
|
25
25
|
|
26
|
-
end
|
26
|
+
end
|
data/spec/pages_spec.rb
CHANGED
@@ -6,48 +6,67 @@ describe "Osaka::Pages" do
|
|
6
6
|
include(*Osaka::OsakaExpectations)
|
7
7
|
|
8
8
|
subject { Osaka::Pages.new }
|
9
|
-
|
10
|
-
let (:control) { subject.control =
|
11
|
-
|
9
|
+
|
10
|
+
let (:control) { subject.control = double("Remote Control", :name => "ApplicationName")}
|
11
|
+
|
12
12
|
context "Basic document operations" do
|
13
|
-
|
13
|
+
|
14
14
|
it "Should be able to type in the file" do
|
15
15
|
expect_keystroke("Hello")
|
16
16
|
subject.type("Hello")
|
17
|
-
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "Should be able to create a new document using template choser if there is one" do
|
20
|
+
expect(subject).to receive(:do_and_wait_for_new_window).and_yield.and_return("Template Chooser")
|
21
|
+
expect_keystroke("n", :command)
|
22
|
+
expect_set_current_window("Template Chooser")
|
23
|
+
expect_focus
|
24
|
+
expect_current_window_name.and_return("Template Chooser")
|
25
|
+
expect(subject).to receive(:do_and_wait_for_new_window).and_yield.and_return("New Document")
|
26
|
+
expect_click(at.button("Choose").window("Template Chooser"))
|
27
|
+
expect_set_current_window("New Document")
|
28
|
+
subject.new_document
|
29
|
+
end
|
30
|
+
|
31
|
+
it "Should be able to create a new document also when there is no template chooser" do
|
32
|
+
expect(subject).to receive(:do_and_wait_for_new_window).and_yield.and_return("New Document")
|
33
|
+
expect_keystroke("n", :command)
|
34
|
+
expect_set_current_window("New Document")
|
35
|
+
expect_focus
|
36
|
+
expect_current_window_name.and_return("New Document")
|
37
|
+
subject.new_document
|
38
|
+
end
|
39
|
+
|
18
40
|
end
|
19
|
-
|
41
|
+
|
20
42
|
it "Should be able to use a class method for creating documents quickly" do
|
21
|
-
Osaka::Pages.
|
22
|
-
subject.
|
43
|
+
expect(Osaka::Pages).to receive(:new).at_least(1).times.and_return(double("App"))
|
44
|
+
expect(subject).to receive(:create_document)
|
23
45
|
|
24
46
|
Osaka::Pages.create_document("filename") { |doc|
|
25
|
-
}
|
47
|
+
}
|
26
48
|
end
|
27
|
-
|
49
|
+
|
28
50
|
it "Should be able to do mail merge to a PDF flow" do
|
29
51
|
|
30
|
-
mail_merge_dialog =
|
31
|
-
print_dialog =
|
52
|
+
mail_merge_dialog = double("Pages Mail Merge Dialog")
|
53
|
+
print_dialog = double("Generic Print Dialog")
|
32
54
|
|
33
|
-
subject.
|
34
|
-
mail_merge_dialog.
|
35
|
-
mail_merge_dialog.
|
36
|
-
print_dialog.
|
55
|
+
expect(subject).to receive(:mail_merge).and_return(mail_merge_dialog)
|
56
|
+
expect(mail_merge_dialog).to receive(:merge).and_return(print_dialog)
|
57
|
+
expect(mail_merge_dialog).to receive(:set_merge_to_printer)
|
58
|
+
expect(print_dialog).to receive(:save_as_pdf).with("filename")
|
37
59
|
|
38
60
|
subject.mail_merge_to_pdf("filename")
|
39
61
|
end
|
40
|
-
|
62
|
+
|
41
63
|
it "Should be able to select the Mail Merge" do
|
42
|
-
expect_current_window_name.any_number_of_times.and_return("Pages.pages")
|
43
64
|
expect_click_menu_bar(at.menu_item(20), "Edit")
|
44
65
|
expect_wait_until_exists(at.button("Merge").sheet(1))
|
45
66
|
subject.mail_merge
|
46
67
|
end
|
47
68
|
|
48
69
|
it "Should click the merge button of the mail merge dialog" do
|
49
|
-
expect_current_window_name.any_number_of_times.and_return("Pages.pages")
|
50
|
-
|
51
70
|
expect_click_menu_bar(at.menu_item(20), "Edit")
|
52
71
|
expect_wait_until_exists(at.button("Merge").sheet(1))
|
53
72
|
|
@@ -55,54 +74,54 @@ describe "Osaka::Pages" do
|
|
55
74
|
expect_wait_until_exists!(at.menu_button("PDF").window("Print"))
|
56
75
|
subject.mail_merge.merge
|
57
76
|
end
|
58
|
-
|
77
|
+
|
59
78
|
it "Should be able to get an inspector object" do
|
60
|
-
subject.
|
79
|
+
expect(subject).to receive(:do_and_wait_for_new_window).and_yield.and_return("Link")
|
61
80
|
expect_exists?(at.menu_item("Show Inspector").menu(1).menu_bar_item("View").menu_bar(1)).and_return(true)
|
62
81
|
expect_click_menu_bar(at.menu_item("Show Inspector"), "View")
|
63
82
|
|
64
|
-
inspector_mock =
|
65
|
-
Osaka::PagesInspector.
|
66
|
-
subject.inspector.
|
83
|
+
inspector_mock = double("Inspector")
|
84
|
+
expect(Osaka::PagesInspector).to receive(:new).with(control.name, at.window("Link")).and_return(inspector_mock)
|
85
|
+
expect(subject.inspector).to eq(inspector_mock)
|
67
86
|
end
|
68
|
-
|
87
|
+
|
69
88
|
it "Should be able to get the inspector object also when it is already visible" do
|
70
|
-
subject.
|
89
|
+
expect(subject).to receive(:do_and_wait_for_new_window).and_yield.and_return("Link")
|
71
90
|
expect_exists?(at.menu_item("Show Inspector").menu(1).menu_bar_item("View").menu_bar(1)).and_return(false)
|
72
91
|
expect_click_menu_bar(at.menu_item("Hide Inspector"), "View")
|
73
92
|
expect_wait_until_exists(at.menu_item("Show Inspector").menu(1).menu_bar_item("View").menu_bar(1))
|
74
93
|
expect_click_menu_bar(at.menu_item("Show Inspector"), "View")
|
75
94
|
subject.inspector
|
76
95
|
end
|
77
|
-
|
96
|
+
|
78
97
|
it "Should be able to change the mail merge document source" do
|
79
|
-
inspector_mock =
|
80
|
-
subject.
|
81
|
-
inspector_mock.
|
98
|
+
inspector_mock = double("Inspector")
|
99
|
+
expect(subject).to receive(:inspector).and_return(inspector_mock)
|
100
|
+
expect(inspector_mock).to receive(:change_mail_merge_source)
|
82
101
|
|
83
102
|
expect_wait_until_exists(at.sheet(1))
|
84
|
-
subject.
|
103
|
+
expect(subject).to receive(:do_and_wait_for_new_window).and_yield.and_return("dialog")
|
85
104
|
expect_click(at.radio_button("Numbers Document:").radio_group(1).sheet(1))
|
86
105
|
|
87
|
-
subject.
|
106
|
+
expect(subject).to receive(:select_file_from_open_dialog).with("/tmp/filename", at.window("dialog"))
|
88
107
|
expect_click(at.button("OK").sheet(1))
|
89
|
-
|
108
|
+
|
90
109
|
expect_exists?(at.sheet(1).sheet(1)).and_return(false)
|
91
110
|
subject.set_mail_merge_document("/tmp/filename")
|
92
111
|
end
|
93
|
-
|
112
|
+
|
94
113
|
it "Should be able to stop when an error happens due to mail merge. This is especially important since otherwise Pages goes nuts and crashes :)" do
|
95
|
-
subject.
|
114
|
+
expect(subject).to receive(:inspector).and_return(double("Inspector").as_null_object)
|
96
115
|
expect_wait_until_exists(at.sheet(1))
|
97
|
-
subject.
|
98
|
-
subject.
|
116
|
+
expect(subject).to receive(:do_and_wait_for_new_window)
|
117
|
+
expect(subject).to receive(:select_file_from_open_dialog)
|
99
118
|
|
100
119
|
expect_exists?(at.sheet(1).sheet(1)).and_return(true)
|
101
|
-
|
120
|
+
|
102
121
|
expect {subject.set_mail_merge_document("/tmp/filename") }.to raise_error(Osaka::PagesError, "Setting Mail Merge numbers file failed")
|
103
|
-
|
122
|
+
|
104
123
|
end
|
105
|
-
|
124
|
+
|
106
125
|
it "Should be able to insert a merge field" do
|
107
126
|
expect_click_menu_bar(at.menu_item("Data").menu(1).menu_item("Merge Field"), "Insert")
|
108
127
|
subject.mail_merge_field("Data")
|
@@ -110,36 +129,36 @@ describe "Osaka::Pages" do
|
|
110
129
|
end
|
111
130
|
|
112
131
|
describe "Osaka::Pages Inspector" do
|
113
|
-
|
132
|
+
|
114
133
|
include(*Osaka::OsakaExpectations)
|
115
134
|
|
116
135
|
subject {Osaka::PagesInspector.new("Pages", "Link")}
|
117
|
-
let(:control) {subject.control =
|
136
|
+
let(:control) {subject.control = double("RemoteControl")}
|
118
137
|
|
119
138
|
it "Can convert symbolic names to locations" do
|
120
139
|
# Nice... checking a map. Perhaps delete ?
|
121
|
-
subject.get_location_from_symbol(:document).
|
122
|
-
subject.get_location_from_symbol(:layout).
|
123
|
-
subject.get_location_from_symbol(:wrap).
|
124
|
-
subject.get_location_from_symbol(:text).
|
125
|
-
subject.get_location_from_symbol(:graphic).
|
126
|
-
subject.get_location_from_symbol(:metrics).
|
127
|
-
subject.get_location_from_symbol(:table).
|
128
|
-
subject.get_location_from_symbol(:chart).
|
129
|
-
subject.get_location_from_symbol(:link).
|
130
|
-
subject.get_location_from_symbol(:quicktime).
|
140
|
+
expect(subject.get_location_from_symbol(:document)).to eq at.radio_button(1).radio_group(1)
|
141
|
+
expect(subject.get_location_from_symbol(:layout)).to eq at.radio_button(2).radio_group(1)
|
142
|
+
expect(subject.get_location_from_symbol(:wrap)).to eq at.radio_button(3).radio_group(1)
|
143
|
+
expect(subject.get_location_from_symbol(:text)).to eq at.radio_button(4).radio_group(1)
|
144
|
+
expect(subject.get_location_from_symbol(:graphic)).to eq at.radio_button(5).radio_group(1)
|
145
|
+
expect(subject.get_location_from_symbol(:metrics)).to eq at.radio_button(6).radio_group(1)
|
146
|
+
expect(subject.get_location_from_symbol(:table)).to eq at.radio_button(7).radio_group(1)
|
147
|
+
expect(subject.get_location_from_symbol(:chart)).to eq at.radio_button(8).radio_group(1)
|
148
|
+
expect(subject.get_location_from_symbol(:link)).to eq at.radio_button(9).radio_group(1)
|
149
|
+
expect(subject.get_location_from_symbol(:quicktime)).to eq at.radio_button(10).radio_group(1)
|
131
150
|
end
|
132
|
-
|
133
|
-
|
151
|
+
|
152
|
+
|
134
153
|
it "Should be able to select the different inspectors" do
|
135
154
|
expect_click(subject.get_location_from_symbol(:document))
|
136
155
|
expect_wait_until_exists(at.window("document"))
|
137
156
|
expect_set_current_window("document")
|
138
157
|
subject.select_inspector(:document)
|
139
158
|
end
|
140
|
-
|
159
|
+
|
141
160
|
it "Change the mail merge source" do
|
142
|
-
subject.
|
161
|
+
expect(subject).to receive(:select_inspector).with(:link)
|
143
162
|
expect_click(at.radio_button(3).tab_group(1).group(1))
|
144
163
|
expect_wait_until_exists(at.button("Choose...").tab_group(1).group(1))
|
145
164
|
expect_click(at.button("Choose...").tab_group(1).group(1))
|
@@ -149,11 +168,11 @@ describe "Osaka::Pages Inspector" do
|
|
149
168
|
end
|
150
169
|
|
151
170
|
describe "Osaka::Pages Mail Merge dialog" do
|
152
|
-
|
171
|
+
|
153
172
|
include(*Osaka::OsakaExpectations)
|
154
173
|
|
155
174
|
subject { Osaka::PagesMailMergeDialog.new("", nil) }
|
156
|
-
let(:control) {subject.control =
|
175
|
+
let(:control) {subject.control = double("RemoteControl").as_null_object}
|
157
176
|
|
158
177
|
it "Should be able to set the mail merge dialog to merge to new document" do
|
159
178
|
expect_click(at.pop_up_button(2).sheet(1))
|
@@ -161,12 +180,12 @@ describe "Osaka::Pages Mail Merge dialog" do
|
|
161
180
|
expect_click!(at.menu_item(1).menu(1).pop_up_button(2).sheet(1))
|
162
181
|
subject.set_merge_to_new_document
|
163
182
|
end
|
164
|
-
|
183
|
+
|
165
184
|
it "Should be able to set the mail merge dialog to merge to printer" do
|
166
185
|
expect_click(at.pop_up_button(2).sheet(1))
|
167
186
|
expect_wait_until_exists!(at.menu_item(2).menu(1).pop_up_button(2).sheet(1))
|
168
187
|
expect_click!(at.menu_item(2).menu(1).pop_up_button(2).sheet(1))
|
169
|
-
subject.set_merge_to_printer
|
188
|
+
subject.set_merge_to_printer
|
170
189
|
end
|
171
190
|
end
|
172
191
|
|