spec/gateway_spec.rb in mediawiki-gateway-0.6.0 vs spec/gateway_spec.rb in mediawiki-gateway-0.6.1
- old
+ new
@@ -1,15 +1,12 @@
require 'spec_helper'
# Kickstart fake media wiki app
require 'sham_rack'
require_relative 'fake_media_wiki/app'
-$fake_media_wiki = FakeMediaWiki::App.new
-unless $fake_media_wiki.instance_of? FakeMediaWiki::App
- # This is a horrible workaround for some bizarre conflict with later versions of ShamRack/Rack/Sinatra/Builder/...
- $fake_media_wiki = $fake_media_wiki.instance_eval('app').instance_eval('@app').instance_eval('@app').app.app.app.app.app
-end
+
+$fake_media_wiki = FakeMediaWiki::App.new!
ShamRack.mount($fake_media_wiki, 'dummy-wiki.example')
describe MediaWiki::Gateway do
before do
@@ -188,50 +185,54 @@
end
describe "when wiki returns 503" do
before do
- @log = Object.new
- stub(@log).debug { }
- stub(@log).warn { }
+ @log = double(:debug => nil, :warn => nil)
@fail_gateway = MediaWiki::Gateway.new('http://dummy-wiki.example/w/api.php', {:maxlag => -1, :retry_delay => 0})
- stub(@fail_gateway).log { @log }
+ allow(@fail_gateway).to receive(:log) { @log }
end
it "should retry twice and fail" do
lambda {
@fail_gateway.get("")
}.should raise_error
- @log.should have_received.warn("503 Service Unavailable: Maxlag exceeded. Retry in 0 seconds.").times(2)
+ @log.should have_received(:warn).with("503 Service Unavailable: Maxlag exceeded. Retry in 0 seconds.").twice
end
end
+ it "should pass options to RestClient::Request" do
+ gateway = MediaWiki::Gateway.new('http://dummy-wiki.example/w/api.php', {}, :verify_ssl => false)
+ RestClient::Request.should receive(:execute).with(hash_including(:verify_ssl => false)).and_return([double(:elements => {})])
+ gateway.get("").should be_nil
+ end
+
end
describe "#redirect?" do
describe "for an existing redirect page" do
it "returns true" do
- @gateway.redirect?("Redirect").should be_true
+ @gateway.redirect?("Redirect").should == true
end
end
describe "for an existing non-redirect page" do
it "returns false" do
- @gateway.redirect?("Main Page").should be_false
+ @gateway.redirect?("Main Page").should == false
end
end
describe "for a missing wiki page" do
it "returns false" do
- @gateway.redirect?("page/missing").should be_false
+ @gateway.redirect?("page/missing").should == false
end
end
end
@@ -387,23 +388,24 @@
end
describe "when uploading a new file" do
before do
- stub(File).new(anything) { "SAMPLEIMAGEDATA" }
- @page = @gateway.upload("some/path/sample_image.jpg")
+ @path = 'some/path/sample_image.jpg'
+ allow(File).to receive(:new).with(@path).and_return('SAMPLEIMAGEDATA')
+ @page = @gateway.upload(@path)
end
it "should open the file" do
- File.should have_received.new("some/path/sample_image.jpg")
+ File.should have_received(:new).with(@path)
end
it "should upload the file" do
expected = <<-XML
<api>
<upload result="Success" filename="sample_image.jpg"/>
- </api>
+ </api>
XML
Hash.from_xml(@page.first.to_s).should == Hash.from_xml(expected)
end
end
@@ -615,10 +617,10 @@
before do
@search = @gateway.search("KEY", nil, 2, 1)
end
it "should return at most the maximum number of results asked" do
- @search.should have(1).string
+ @search.size.should == 1
end
end
end