-
Notifications
You must be signed in to change notification settings - Fork 10
/
response_spec.rb
76 lines (57 loc) · 2.1 KB
/
response_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
require 'spec_helper'
describe Wordnik::Response do
before(:each) do
@raw = Typhoeus::Request.get("http://#{Wordnik.configuration.host}#{Wordnik.configuration.base_path}/word.json")
@response = Wordnik::Response.new(@raw)
end
describe "initialization" do
it "sets body" do
@response.body.class.should == Hash
@response.body.has_key?('apis').should == true
end
it "sets code" do
@response.code.should == 200
end
it "converts header string into a hash" do
@response.headers.class.should == Hash
@response.headers['Wordnik-Api-Version'].to_s.should =~ /^4/
end
end
describe "unauthorized" do
it "raises an error when initialized" do
@unauthorized_raw = Typhoeus::Request.get("http://#{Wordnik.configuration.host}#{Wordnik.configuration.base_path}/word.json/dog/images/flickr")
expect { Wordnik::Response.new(@unauthorized_raw) }.to raise_error(ClientError)
end
end
describe "format" do
it "recognizes json" do
@response.format.should == 'json'
@response.json?.should == true
end
it "recognizes xml" do
@raw = Typhoeus::Request.get("http://#{Wordnik.configuration.host}#{Wordnik.configuration.base_path}/word.xml")
@response = Wordnik::Response.new(@raw)
@response.format.should == 'xml'
@response.xml?.should == true
end
end
describe "prettiness" do
it "has a pretty json body" do
@response.pretty_body.should =~ /\{.*\}/
end
it "has a pretty XML body even in the face of adverse characters" do
configure_wordnik
@request = Wordnik::Request.new(:get, "word.xml/hero/pronunciations", :params => {:limit => 1})
@response = @request.response
@response.pretty_body.should =~ /\?xml/
end
it "has a pretty xml body" do
@raw = Typhoeus::Request.get("http://#{Wordnik.configuration.host}#{Wordnik.configuration.base_path}/word.xml")
@response = Wordnik::Response.new(@raw)
@response.pretty_body.should =~ /\?xml/
end
it "has pretty headers" do
@response.pretty_headers.should =~ /\{.*\}/
end
end
end