require File.expand_path(File.dirname(__FILE__) + "/../spec_helper") describe "save_and_open_page" do before do with_html <<-HTML

Hello world

HTML File.stub!(:exist? => true) Time.stub!(:now => 1234) require "launchy" Launchy::Browser.stub!(:run) @file_handle = mock("file handle") File.stub!(:open).and_yield(@file_handle) @file_handle.stub!(:write) end it "should save pages to the directory configured" do Webrat.configuration.stub!(:saved_pages_dir => "path/to/dir") File.should_receive(:open).with("path/to/dir/webrat-1234.html", "w").and_yield(@file_handle) save_and_open_page end it "should rewrite css rules" do @file_handle.should_receive(:write) do |html| html.should =~ %r|"#{webrat_session.doc_root}/stylesheets/foo.css"|s end save_and_open_page end it "should rewrite image paths with double quotes" do @file_handle.should_receive(:write) do |html| html.should =~ %r|"#{webrat_session.doc_root}/images/bar.png"|s end save_and_open_page end it "should rewrite image paths with single quotes" do @file_handle.should_receive(:write) do |html| html.should =~ %r|'#{webrat_session.doc_root}/images/foo.png'|s end save_and_open_page end it "should open the temp file in a browser with Launchy" do Launchy::Browser.should_receive(:run) save_and_open_page end it "should fail gracefully if Launchy is not available" do Launchy::Browser.should_receive(:run).and_raise(LoadError) lambda do save_and_open_page end.should_not raise_error end end