osaka 0.4.4 → 0.4.5
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.
- data/lib/osaka/mailmergeflow.rb +1 -0
- data/lib/osaka/pages.rb +9 -5
- data/lib/osaka/preview.rb +1 -3
- data/lib/osaka/typicalapplication.rb +6 -0
- data/lib/osaka/version.rb +1 -1
- data/spec/mailmergeflow_spec.rb +1 -0
- data/spec/pages_spec.rb +16 -5
- data/spec/preview_spec.rb +1 -4
- data/spec/typicalapplication_spec.rb +9 -0
- metadata +1 -1
    
        data/lib/osaka/mailmergeflow.rb
    CHANGED
    
    
    
        data/lib/osaka/pages.rb
    CHANGED
    
    | @@ -1,5 +1,9 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            module Osaka
         | 
| 3 | 
            +
              
         | 
| 4 | 
            +
              class PagesError < RuntimeError
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
              
         | 
| 3 7 | 
             
              class PagesMailMergeDialog
         | 
| 4 8 | 
             
                attr_accessor :control, :location
         | 
| 5 9 |  | 
| @@ -88,11 +92,11 @@ module Osaka | |
| 88 92 | 
             
                  open_dialog = do_and_wait_for_new_window {
         | 
| 89 93 | 
             
                    control.click(at.radio_button("Numbers Document:").radio_group(1).sheet(1))
         | 
| 90 94 | 
             
                  }
         | 
| 91 | 
            -
                   | 
| 92 | 
            -
                   | 
| 93 | 
            -
             | 
| 94 | 
            -
                   | 
| 95 | 
            -
                  
         | 
| 95 | 
            +
                  select_file_from_open_dialog(filename, at.window(open_dialog))
         | 
| 96 | 
            +
                  if (control.exists?(at.sheet(1).sheet(1)))
         | 
| 97 | 
            +
                    raise(PagesError, "Setting Mail Merge numbers file failed")
         | 
| 98 | 
            +
                  end
         | 
| 99 | 
            +
                  control.click(at.button("OK").sheet(1))      
         | 
| 96 100 | 
             
                end
         | 
| 97 101 |  | 
| 98 102 | 
             
                def mail_merge_field(field_name)
         | 
    
        data/lib/osaka/preview.rb
    CHANGED
    
    | @@ -16,10 +16,8 @@ module Osaka | |
| 16 16 |  | 
| 17 17 | 
             
                def open(filename)
         | 
| 18 18 | 
             
                  control.click_menu_bar(at.menu_item("Open…"), "File").wait_until_exists(at.window("Open"))
         | 
| 19 | 
            -
                  dialog = create_dialog(TypicalOpenDialog, at.window("Open"))
         | 
| 20 | 
            -
                  dialog.set_folder(File.dirname(filename))
         | 
| 21 19 | 
             
                  new_window = do_and_wait_for_new_window {
         | 
| 22 | 
            -
                     | 
| 20 | 
            +
                    select_file_from_open_dialog(filename, at.window("Open"))
         | 
| 23 21 | 
             
                  }
         | 
| 24 22 | 
             
                  control.set_current_window(new_window)
         | 
| 25 23 | 
             
                end
         | 
| @@ -191,5 +191,11 @@ module Osaka | |
| 191 191 | 
             
                  dialog_class.new(control.name, location + (location.has_top_level_element? ? "" : control.base_location))
         | 
| 192 192 | 
             
                end
         | 
| 193 193 |  | 
| 194 | 
            +
                def select_file_from_open_dialog(filename, dialog_location)
         | 
| 195 | 
            +
                  dialog = create_dialog(TypicalOpenDialog, dialog_location)
         | 
| 196 | 
            +
                  dialog.set_folder(File.dirname(filename))
         | 
| 197 | 
            +
                  dialog.select_file(File.basename(filename))
         | 
| 198 | 
            +
                  
         | 
| 199 | 
            +
                end
         | 
| 194 200 | 
             
              end
         | 
| 195 201 | 
             
            end
         | 
    
        data/lib/osaka/version.rb
    CHANGED
    
    
    
        data/spec/mailmergeflow_spec.rb
    CHANGED
    
    | @@ -13,6 +13,7 @@ describe "Mail Merge to PDF common flow" do | |
| 13 13 | 
             
                Osaka::Pages.should_receive(:new).and_return(mock_pages)
         | 
| 14 14 |  | 
| 15 15 | 
             
                mock_pages.should_receive(:open).with("/template/pages")
         | 
| 16 | 
            +
                mock_pages.should_receive(:set_mail_merge_document).with("/template/numbers")
         | 
| 16 17 | 
             
                mock_pages.should_receive(:mail_merge_to_pdf).with("/output/file.pdf")
         | 
| 17 18 |  | 
| 18 19 | 
             
                mock_pages.should_receive(:close).with(:dont_save)    
         | 
    
        data/spec/pages_spec.rb
    CHANGED
    
    | @@ -84,15 +84,26 @@ describe "Osaka::Pages" do | |
| 84 84 | 
             
                subject.should_receive(:do_and_wait_for_new_window).and_yield.and_return("dialog")
         | 
| 85 85 | 
             
                expect_click(at.radio_button("Numbers Document:").radio_group(1).sheet(1))
         | 
| 86 86 |  | 
| 87 | 
            -
                 | 
| 88 | 
            -
                subject.should_receive(:create_dialog).with(Osaka::TypicalOpenDialog, at.window("dialog")).and_return(dialog_mock)
         | 
| 89 | 
            -
                dialog_mock.should_receive(:set_folder).with("/tmp")
         | 
| 90 | 
            -
                dialog_mock.should_receive(:select_file).with("filename")
         | 
| 87 | 
            +
                subject.should_receive(:select_file_from_open_dialog).with("/tmp/filename", at.window("dialog"))
         | 
| 91 88 | 
             
                expect_click(at.button("OK").sheet(1))
         | 
| 92 89 |  | 
| 93 | 
            -
                 | 
| 90 | 
            +
                expect_exists?(at.sheet(1).sheet(1)).and_return(false)
         | 
| 91 | 
            +
                subject.set_mail_merge_document("/tmp/filename")
         | 
| 94 92 | 
             
              end
         | 
| 95 93 |  | 
| 94 | 
            +
              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.should_receive(:inspector).and_return(mock("Inspector").as_null_object)    
         | 
| 96 | 
            +
                expect_wait_until_exists(at.sheet(1))
         | 
| 97 | 
            +
                subject.should_receive(:do_and_wait_for_new_window)
         | 
| 98 | 
            +
                subject.should_receive(:select_file_from_open_dialog)
         | 
| 99 | 
            +
                
         | 
| 100 | 
            +
                expect_exists?(at.sheet(1).sheet(1)).and_return(true)
         | 
| 101 | 
            +
                    
         | 
| 102 | 
            +
                expect {subject.set_mail_merge_document("/tmp/filename") }.to raise_error(Osaka::PagesError, "Setting Mail Merge numbers file failed")
         | 
| 103 | 
            +
                
         | 
| 104 | 
            +
              end
         | 
| 105 | 
            +
              
         | 
| 106 | 
            +
              
         | 
| 96 107 | 
             
              it "Should be able to insert a merge field" do
         | 
| 97 108 | 
             
                expect_click_menu_bar(at.menu_item("Data").menu(1).menu_item("Merge Field"), "Insert")
         | 
| 98 109 | 
             
                subject.mail_merge_field("Data")
         | 
    
        data/spec/preview_spec.rb
    CHANGED
    
    | @@ -14,14 +14,11 @@ describe "Preview application for reading PDFs" do | |
| 14 14 | 
             
              end
         | 
| 15 15 |  | 
| 16 16 | 
             
              it "Can open a PDF file via the menu instead of the AppleScript 'open' as that one is buggy" do
         | 
| 17 | 
            -
                open_dialog = mock("Open Dialog")
         | 
| 18 17 |  | 
| 19 18 | 
             
                expect_click_menu_bar(at.menu_item("Open…"), "File")
         | 
| 20 19 | 
             
                expect_wait_until_exists(at.window("Open"))
         | 
| 21 20 | 
             
                subject.stub(:do_and_wait_for_new_window).and_yield.and_return("window name")    
         | 
| 22 | 
            -
                subject.should_receive(: | 
| 23 | 
            -
                open_dialog.should_receive(:set_folder).with("dir")
         | 
| 24 | 
            -
                open_dialog.should_receive(:select_file).with("filename")
         | 
| 21 | 
            +
                subject.should_receive(:select_file_from_open_dialog).with("dir/filename", at.window("Open"))
         | 
| 25 22 | 
             
                expect_set_current_window("window name")
         | 
| 26 23 |  | 
| 27 24 | 
             
                subject.open("dir/filename")
         | 
| @@ -166,6 +166,15 @@ describe "Osaka::TypicalApplication" do | |
| 166 166 | 
             
                  subject.wait_for_save_dialog_and_save_file("/tmp/filename")
         | 
| 167 167 | 
             
                end
         | 
| 168 168 |  | 
| 169 | 
            +
                it "Should be able to pick a file from an open dialog" do
         | 
| 170 | 
            +
                  dialog_mock = mock("Open Dialog")
         | 
| 171 | 
            +
                  subject.should_receive(:create_dialog).with(Osaka::TypicalOpenDialog, at.window("dialog")).and_return(dialog_mock)
         | 
| 172 | 
            +
                  dialog_mock.should_receive(:set_folder).with("/tmp")
         | 
| 173 | 
            +
                  dialog_mock.should_receive(:select_file).with("filename")
         | 
| 174 | 
            +
                  
         | 
| 175 | 
            +
                  subject.select_file_from_open_dialog("/tmp/filename", at.window("dialog"))
         | 
| 176 | 
            +
                end
         | 
| 177 | 
            +
                
         | 
| 169 178 |  | 
| 170 179 | 
             
                it "Should be able to duplicate and close the original document" do
         | 
| 171 180 | 
             
                  subject.stub_chain(:duplicate, :control).and_return(new_instance_control)
         |