spec/rakismet_spec.rb in rakismet-1.2.1 vs spec/rakismet_spec.rb in rakismet-1.3.0
- old
+ new
@@ -1,20 +1,20 @@
-require File.dirname(__FILE__) + '/spec_helper'
+require 'spec_helper'
describe Rakismet do
def mock_response(body)
double(:response, :body => body)
end
let(:http) { double(:http, :post => mock_response('akismet response')) }
- after do
+ before do
Rakismet.key = 'dummy-key'
Rakismet.url = 'test.localhost'
Rakismet.host = 'endpoint.localhost'
end
-
+
describe "proxy host" do
it "should have proxy host and port as nil by default" do
Rakismet.proxy_host.should be_nil
Rakismet.proxy_port.should be_nil
end
@@ -34,25 +34,25 @@
it "should raise an error if host is not found" do
Rakismet.host = ''
lambda { Rakismet.send(:validate_config) }.should raise_error(Rakismet::Undefined)
end
end
-
+
describe ".validate_key" do
before (:each) do
@proxy = mock(Net::HTTP)
Net::HTTP.stub!(:Proxy).and_return(@proxy)
end
-
+
it "should use proxy host and port" do
Rakismet.proxy_host = 'proxy_host'
Rakismet.proxy_port = 'proxy_port'
@proxy.stub!(:start).and_return(mock_response('valid'))
Net::HTTP.should_receive(:Proxy).with('proxy_host', 'proxy_port').and_return(@proxy)
Rakismet.validate_key
end
-
+
it "should set @@valid_key = true if key is valid" do
@proxy.stub!(:start).and_return(mock_response('valid'))
Rakismet.validate_key
Rakismet.valid_key?.should be_true
end
@@ -68,45 +68,56 @@
Rakismet.host = host
@proxy.should_receive(:start).with(host).and_yield(http)
Rakismet.validate_key
end
end
-
+
describe ".akismet_call" do
before do
@proxy = mock(Net::HTTP)
Net::HTTP.stub!(:Proxy).and_return(@proxy)
@proxy.stub(:start).and_yield(http)
end
-
+
it "should use proxy host and port" do
Rakismet.proxy_host = 'proxy_host'
Rakismet.proxy_port = 'proxy_port'
@proxy.stub!(:start).and_return(mock_response('valid'))
Net::HTTP.should_receive(:Proxy).with('proxy_host', 'proxy_port').and_return(@proxy)
Rakismet.send(:akismet_call, 'bogus-function')
end
-
+
it "should build url with API key for the correct host" do
host = 'api.antispam.typepad.com'
Rakismet.host = host
@proxy.should_receive(:start).with("#{Rakismet.key}.#{host}")
Rakismet.send(:akismet_call, 'bogus-function')
end
-
+
it "should post data to named function" do
http.should_receive(:post).with('/1.1/bogus-function', %r(foo=#{CGI.escape 'escape//this'}), Rakismet.headers)
Rakismet.send(:akismet_call, 'bogus-function', { :foo => 'escape//this' })
end
-
+
+ it "should default to not being in test mode" do
+ http.should_receive(:post).with(anything, %r(is_test=0), anything)
+ Rakismet.send(:akismet_call, 'bogus-function')
+ end
+
+ it "should be in test mode when configured" do
+ Rakismet.test = true
+ http.should_receive(:post).with(anything, %r(is_test=1), anything)
+ Rakismet.send(:akismet_call, 'bogus-function')
+ end
+
it "should return response.body" do
Rakismet.send(:akismet_call, 'bogus-function').should eql('akismet response')
end
it "should build query string when params are nil" do
lambda {
Rakismet.send(:akismet_call, 'bogus-function', { :nil_param => nil })
}.should_not raise_error(NoMethodError)
end
end
-
+
end