imdb_lists 1.0.4 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,124 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe ImdbLists::History do
4
- before(:all) do
5
- @url = "http://www.imdb.com/mymovies/list?l=32558051"
6
- @id = "32558051"
7
- @count = 937
8
-
9
- @valid_urls = [
10
- "http://imdb.com/mymovies/list?l=1234",
11
- "imdb.com/mymovies/list?l=1234",
12
- "www.imdb.com/mymovies/list?l=1234"
13
- ]
14
-
15
- @invalid_urls = [
16
- "http://www.imdb.com/mymovieslist?l=32558051",
17
- "mymovieslist?l=32558051",
18
- "http://www.imdb.com/mymovieslist?l=32558abc051"
19
- ]
20
- end
21
-
22
- after(:each) do
23
- WebMock.reset!
24
- end
25
-
26
- before(:each) do
27
- @ivh = ImdbLists::History.new(@id)
28
- end
29
-
30
- context "200 success" do
31
- before(:each) do
32
- stub_request(:get, "#{@url}&a=1").to_return(:body => File.new("spec/fixtures/32558051.html"), :status => 200)
33
- end
34
-
35
- it "should return a list of movies" do
36
- @ivh.should have(@count).movies
37
- end
38
-
39
- it "should be able to cache" do
40
- object = Container::Movie.new(:imdb_link => "http://www.imdb.com/title/tt0460649/")
41
- Container::Movie.should_receive(:new).exactly(@count).times.and_return(object)
42
- 10.times { @ivh.movies }
43
- end
44
-
45
- it "should have a user method" do
46
- @ivh.user.should eq("eddyproca")
47
- end
48
-
49
- it "should have a id method" do
50
- @ivh.id.should eq(32558051)
51
- end
52
-
53
- it "should contain a list of movies" do
54
- @ivh.movies.all? { |m| m.should be_instance_of(Container::Movie) }
55
- end
56
-
57
- it "should have an url method" do
58
- @ivh.url.should eq(@url)
59
- end
60
- end
61
-
62
- context "404 error" do
63
- before(:each) do
64
- stub_request(:get, "#{@url}&a=1").to_return(:body => "", :status => 404)
65
- end
66
-
67
- it "should return an empty list if something goes wrong" do
68
- @ivh.movies.should be_empty
69
- end
70
-
71
- it "should not return a user" do
72
- @ivh.user.should be_nil
73
- end
74
- end
75
-
76
- context "a non public list" do
77
- before(:each) do
78
- stub_request(:get, "#{@url}&a=1").to_return(:body => File.new("spec/fixtures/non_public.html"), :status => 200)
79
- end
80
-
81
- it "should return an empty list" do
82
- @ivh.should have(0).movies
83
- end
84
-
85
- it "should not have a user" do
86
- @ivh.user.should be_nil
87
- end
88
-
89
- it "should have an id" do
90
- @ivh.id.should eq(32558051)
91
- end
92
- end
93
-
94
- context "the find_by_id method" do
95
- it "should be possible to pass an id" do
96
- ["32558051", 32558051].each do |id|
97
- ImdbLists::History.should_receive(:new).with(id)
98
- lambda { ImdbLists::find_by_id(id) }.should_not raise_error(ArgumentError)
99
- end
100
- end
101
-
102
- it "should not be possible to pass nil or n <= 9" do
103
- ["0", nil, "1", "9"].each do |id|
104
- lambda { ImdbLists::find_by_id(id) }.should raise_error(ArgumentError)
105
- end
106
- end
107
- end
108
-
109
- context "the find_by_url method" do
110
- it "should raise an error if the url is invalid" do
111
- ImdbLists::History.should_not_receive(:new)
112
- @invalid_urls.each do |url|
113
- lambda { ImdbLists::find_by_url(url) }.should raise_error(ArgumentError)
114
- end
115
- end
116
-
117
- it "should not raise an error if the url is valid" do
118
- ImdbLists::History.should_receive(:new).with("1234").exactly(@valid_urls.length).times
119
- @valid_urls.each do |url|
120
- lambda { ImdbLists::find_by_url(url) }.should_not raise_error(ArgumentError)
121
- end
122
- end
123
- end
124
- end
@@ -1,170 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe ImdbLists::Watchlist do
4
- before(:all) do
5
- @url = "http://www.imdb.com/list/2BZy80bxY2U"
6
- @id = "2BZy80bxY2U"
7
- @count = 79
8
- @full_url = "http://www.imdb.com/list/2BZy80bxY2U/?view=compact&sort=listorian:asc"
9
- end
10
-
11
- before(:each) do
12
- @ivh = ImdbLists::Watchlist.new(@id)
13
- end
14
-
15
- context "200 success - internet" do
16
- before(:each) do
17
- stub_request(:get, @full_url).to_return(:body => File.read("spec/fixtures/watchlist.html"), :status => 200)
18
- end
19
-
20
- it "should return a list of movies" do
21
- @ivh.should have(@count).movies
22
- end
23
-
24
- it "should have a user method" do
25
- @ivh.user.should eq("savagestreets")
26
- end
27
-
28
- it "should have a title" do
29
- @ivh.title.should eq("My favorite movies of alltime! some of them are so bad, but so f....g brilliant")
30
- end
31
-
32
- it "should be valid" do
33
- @ivh.should be_valid
34
- end
35
-
36
- after(:each) do
37
- a_request(:get, @full_url).should have_been_made
38
- end
39
-
40
- end
41
-
42
- describe "offline" do
43
- it "should have a id method" do
44
- @ivh.id.should eq("2BZy80bxY2U")
45
- end
46
-
47
- it "should have an url method" do
48
- @ivh.url.should eq(@url)
49
- end
50
- end
51
-
52
- context "empty list" do
53
- before(:each) do
54
- stub_request(:get, @full_url).to_return(:body => File.new("spec/fixtures/empty_watchlist.html"), :status => 200)
55
- end
56
-
57
- it "should return an empty list" do
58
- @ivh.should have(0).movies
59
- end
60
-
61
- it "should not have a user" do
62
- @ivh.user.should eq("Oleeander")
63
- end
64
-
65
- it "should have an id" do
66
- @ivh.id.should eq("2BZy80bxY2U")
67
- end
68
- end
69
-
70
- context "non public" do
71
- before(:each) do
72
- stub_request(:get, @full_url).to_return(:body => File.new("spec/fixtures/non_public_watchlist.html"), :status => 200)
73
- end
74
-
75
- it "should return an empty list" do
76
- @ivh.should have(0).movies
77
- end
78
-
79
- it "should not have a user" do
80
- @ivh.user.should be_nil
81
- end
82
-
83
- it "should not have a title" do
84
- @ivh.title.should be_nil
85
- end
86
-
87
- it "should have an id" do
88
- @ivh.id.should eq("2BZy80bxY2U")
89
- end
90
- end
91
-
92
- context "empty page" do
93
- before(:each) do
94
- stub_request(:get, @full_url).to_return(:body => "<html></html>", :status => 200)
95
- end
96
-
97
- it "should return an empty list" do
98
- @ivh.should have(0).movies
99
- end
100
-
101
- it "should not have a user" do
102
- @ivh.user.should be_nil
103
- end
104
-
105
- it "should not have a title" do
106
- @ivh.title.should be_nil
107
- end
108
-
109
- it "should have an id" do
110
- @ivh.id.should eq("2BZy80bxY2U")
111
- end
112
-
113
- it "should not be valid" do
114
- @ivh.should_not be_valid
115
- end
116
- end
117
-
118
- context "the find_by_id method" do
119
- it "should be possible to pass an id" do
120
- ImdbLists::Watchlist.should_receive(:new).with("2BZy80bxY2U")
121
- lambda { ImdbLists::find_by_id("2BZy80bxY2U") }.should_not raise_error(ArgumentError)
122
- end
123
- end
124
-
125
- context "the find_by_url method" do
126
- it "should not raise an error if the url is valid" do
127
- ImdbLists::Watchlist.should_receive(:new).exactly(2).times.with("2BZy80bxY2U")
128
- lambda { ImdbLists::find_by_url(@full_url) }.should_not raise_error(ArgumentError)
129
- lambda { ImdbLists::find_by_url(@url) }.should_not raise_error(ArgumentError)
130
- end
131
- end
132
-
133
- context "errors" do
134
- before(:each) do
135
- stub_request(:get, @full_url).to_return do
136
- raise RestClient::Exception
137
- end
138
- end
139
-
140
- it "should raise an error" do
141
- lambda { @ivh.movies }.should_not raise_error(RestClient::Exception)
142
- end
143
-
144
- it "should be possible to turn of request errors" do
145
- lambda { @ivh.errors(true).movies }.should raise_error(RestClient::Exception)
146
- end
147
- end
148
-
149
- context "redirect" do
150
- before(:each) do
151
- stub_request(:get, @full_url).to_return(:body => File.new("spec/fixtures/redirect_watchlist.html"), :status => 200)
152
- end
153
-
154
- it "should not return any movies" do
155
- @ivh.should have(0).movies
156
- end
157
-
158
- it "should find any title" do
159
- @ivh.title.should be_nil
160
- end
161
-
162
- it "should still have an id" do
163
- @ivh.id.should eq("2BZy80bxY2U")
164
- end
165
-
166
- it "should not have a user" do
167
- @ivh.user.should be_nil
168
- end
169
- end
170
- end