disqussion 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +9 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +80 -0
- data/HISTORY.mkd +5 -0
- data/LICENSE.mkd +20 -0
- data/README.mkd +139 -0
- data/Rakefile +23 -0
- data/disqussion.gemspec +37 -0
- data/lib/disqussion/api.rb +21 -0
- data/lib/disqussion/client/.DS_Store +0 -0
- data/lib/disqussion/client/applications.rb +20 -0
- data/lib/disqussion/client/blacklists.rb +4 -0
- data/lib/disqussion/client/categories.rb +4 -0
- data/lib/disqussion/client/exports.rb +4 -0
- data/lib/disqussion/client/forums.rb +122 -0
- data/lib/disqussion/client/imports.rb +4 -0
- data/lib/disqussion/client/posts.rb +217 -0
- data/lib/disqussion/client/reactions.rb +79 -0
- data/lib/disqussion/client/reports.rb +4 -0
- data/lib/disqussion/client/threads.rb +199 -0
- data/lib/disqussion/client/trends.rb +23 -0
- data/lib/disqussion/client/users.rb +103 -0
- data/lib/disqussion/client/utils.rb +90 -0
- data/lib/disqussion/client/whitelists.rb +4 -0
- data/lib/disqussion/client.rb +46 -0
- data/lib/disqussion/configuration.rb +121 -0
- data/lib/disqussion/connection.rb +36 -0
- data/lib/disqussion/error.rb +51 -0
- data/lib/disqussion/request.rb +38 -0
- data/lib/disqussion/version.rb +3 -0
- data/lib/disqussion/view_helpers.rb +9 -0
- data/lib/disqussion/widget.rb +183 -0
- data/lib/disqussion.rb +25 -0
- data/lib/faraday/response/raise_http_4xx.rb +41 -0
- data/lib/faraday/response/raise_http_5xx.rb +20 -0
- data/spec/disqussion/api_spec.rb +63 -0
- data/spec/disqussion/client/.DS_Store +0 -0
- data/spec/disqussion/client/applications_spec.rb +24 -0
- data/spec/disqussion/client/forums_spec.rb +80 -0
- data/spec/disqussion/client/posts_spec.rb +154 -0
- data/spec/disqussion/client/reactions_spec.rb +63 -0
- data/spec/disqussion/client/threads_spec.rb +128 -0
- data/spec/disqussion/client/trends_spec.rb +24 -0
- data/spec/disqussion/client/users_spec.rb +33 -0
- data/spec/disqussion/client_spec.rb +15 -0
- data/spec/disqussion_spec.rb +101 -0
- data/spec/faraday/response_spec.rb +30 -0
- data/spec/fixtures/applications/listUsage.json +129 -0
- data/spec/fixtures/forums/create.json +12 -0
- data/spec/fixtures/forums/details.json +12 -0
- data/spec/fixtures/forums/listCategories.json +21 -0
- data/spec/fixtures/forums/listPosts.json +859 -0
- data/spec/fixtures/forums/listThreads.json +533 -0
- data/spec/fixtures/posts/approve.json +6 -0
- data/spec/fixtures/posts/create.json +6 -0
- data/spec/fixtures/posts/details.json +35 -0
- data/spec/fixtures/posts/highlight.json +6 -0
- data/spec/fixtures/posts/list.json +247 -0
- data/spec/fixtures/posts/remove.json +6 -0
- data/spec/fixtures/posts/report.json +6 -0
- data/spec/fixtures/posts/restore.json +6 -0
- data/spec/fixtures/posts/spam.json +6 -0
- data/spec/fixtures/posts/unhighlight.json +6 -0
- data/spec/fixtures/posts/vote.json +6 -0
- data/spec/fixtures/reactions/domains.json +4 -0
- data/spec/fixtures/reactions/ips.json +131 -0
- data/spec/fixtures/reactions/threads.json +4 -0
- data/spec/fixtures/reactions/users.json +124 -0
- data/spec/fixtures/threads/close.json +4 -0
- data/spec/fixtures/threads/create.json +22 -0
- data/spec/fixtures/threads/details.json +24 -0
- data/spec/fixtures/threads/list.json +531 -0
- data/spec/fixtures/threads/listMostLiked.json +530 -0
- data/spec/fixtures/threads/listPosts.json +87 -0
- data/spec/fixtures/threads/open.json +8 -0
- data/spec/fixtures/threads/remove.json +4 -0
- data/spec/fixtures/threads/restore.json +4 -0
- data/spec/fixtures/threads/vote.json +4 -0
- data/spec/fixtures/trends/listTreads.json +283 -0
- data/spec/fixtures/users/details.json +19 -0
- data/spec/fixtures/users/follow.json +4 -0
- data/spec/helper.rb +47 -0
- metadata +348 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Disqussion::API do
|
4
|
+
before do
|
5
|
+
@keys = Disqussion::Configuration::VALID_OPTIONS_KEYS
|
6
|
+
end
|
7
|
+
|
8
|
+
context "with module configuration" do
|
9
|
+
before do
|
10
|
+
Disqussion.configure do |config|
|
11
|
+
@keys.each do |key|
|
12
|
+
config.send("#{key}=", key)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
after do
|
18
|
+
Disqussion.reset
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should inherit module configuration" do
|
22
|
+
api = Disqussion::API.new
|
23
|
+
@keys.each do |key|
|
24
|
+
api.send(key).should == key
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context "with class configuration" do
|
29
|
+
before do
|
30
|
+
@configuration = {
|
31
|
+
:api_key => 'key',
|
32
|
+
:api_secret => 'secret',
|
33
|
+
:adapter => :typhoeus,
|
34
|
+
:endpoint => 'http://disqus.com/api',
|
35
|
+
:format => :json,
|
36
|
+
:proxy => 'http://the88:bar@proxy.example.com:8080',
|
37
|
+
:user_agent => 'Custom User Agent',
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
context "during initialization" do
|
42
|
+
it "should override module configuration" do
|
43
|
+
api = Disqussion::API.new(@configuration)
|
44
|
+
@keys.each do |key|
|
45
|
+
api.send(key).should == @configuration[key] if @configuration[key]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context "after initilization" do
|
51
|
+
it "should override module configuration after initialization" do
|
52
|
+
api = Disqussion::API.new
|
53
|
+
@configuration.each do |key, value|
|
54
|
+
api.send("#{key}=", value)
|
55
|
+
end
|
56
|
+
@keys.each do |key|
|
57
|
+
api.send(key).should == @configuration[key] if @configuration[key]
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
Binary file
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Disqussion::Applications do
|
4
|
+
Disqussion::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Disqussion::Client.applications
|
8
|
+
end
|
9
|
+
|
10
|
+
context "listUsage" do
|
11
|
+
before do
|
12
|
+
stub_get("applications/listUsage.json").
|
13
|
+
to_return(:body => fixture("applications/listUsage.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns the API usage per day for this application." do
|
17
|
+
@client.listUsage
|
18
|
+
a_get("applications/listUsage.json").should have_been_made
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Disqussion::Forums do
|
4
|
+
Disqussion::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Disqussion::Client.forums
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".create" do
|
11
|
+
before do
|
12
|
+
stub_get("forums/create.json", :query => { :website => "the88", :name => "My Forum", :short_name => "myforum" }).
|
13
|
+
to_return(:body => fixture("forums/create.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns new forum infos." do
|
17
|
+
@client.create("the88", "My Forum", "myforum")
|
18
|
+
a_get("forums/create.json", :query => { :website => "the88", :name => "My Forum", :short_name => "myforum" }).
|
19
|
+
should have_been_made
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe ".details" do
|
24
|
+
before do
|
25
|
+
stub_get("forums/details.json", :query => { :forum => "the88" }).
|
26
|
+
to_return(:body => fixture("forums/details.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns details on the requested forum." do
|
30
|
+
@client.details("the88")
|
31
|
+
a_get("forums/details.json", :query => { :forum => "the88" }).
|
32
|
+
should have_been_made
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe ".listPosts" do
|
37
|
+
before do
|
38
|
+
stub_get("forums/listPosts.json", :query => { :forum => "the88" }).
|
39
|
+
to_return(:body => fixture("forums/listPosts.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns details on the requested list of posts." do
|
43
|
+
@client.listPosts("the88")
|
44
|
+
a_get("forums/listPosts.json", :query => { :forum => "the88" }).
|
45
|
+
should have_been_made
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe ".listCategories" do
|
50
|
+
before do
|
51
|
+
stub_get("forums/listCategories.json", :query => { :forum => "the88" }).
|
52
|
+
to_return(:body => fixture("forums/listCategories.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
53
|
+
end
|
54
|
+
|
55
|
+
it "returns details on the requested list of categories." do
|
56
|
+
@client.listCategories("the88")
|
57
|
+
a_get("forums/listCategories.json", :query => { :forum => "the88" }).
|
58
|
+
should have_been_made
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe ".listMostLikedUsers" do
|
63
|
+
pending
|
64
|
+
end
|
65
|
+
|
66
|
+
describe ".listThreads" do
|
67
|
+
before do
|
68
|
+
stub_get("forums/listThreads.json", :query => { :forum => "the88" }).
|
69
|
+
to_return(:body => fixture("forums/listThreads.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
70
|
+
end
|
71
|
+
|
72
|
+
it "returns details on the requested list of threads." do
|
73
|
+
@client.listThreads("the88")
|
74
|
+
a_get("forums/listThreads.json", :query => { :forum => "the88" }).
|
75
|
+
should have_been_made
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,154 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Disqussion::Posts do
|
4
|
+
Disqussion::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Disqussion::Client.posts
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".approve" do
|
11
|
+
before do
|
12
|
+
stub_post("posts/approve.json", :body => { :post => "199088808" }).
|
13
|
+
to_return(:body => fixture("posts/approve.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
end
|
15
|
+
|
16
|
+
it "approves a post." do
|
17
|
+
@client.approve(199088808)
|
18
|
+
a_post("posts/approve.json", :body => { :post => "199088808" }).
|
19
|
+
should have_been_made
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe ".create" do
|
24
|
+
before do
|
25
|
+
stub_post("posts/create.json", :body => { :message => "Nice post!" }).
|
26
|
+
to_return(:body => fixture("posts/create.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
27
|
+
end
|
28
|
+
|
29
|
+
it "create a post." do
|
30
|
+
@client.create("Nice post!")
|
31
|
+
a_post("posts/create.json", :body => { :message => "Nice post!" }).
|
32
|
+
should have_been_made
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe ".details" do
|
37
|
+
before do
|
38
|
+
stub_get("posts/details.json", :query => { :post => "199088808" }).
|
39
|
+
to_return(:body => fixture("posts/details.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns details on the requested post." do
|
43
|
+
@client.details(199088808)
|
44
|
+
a_get("posts/details.json", :query => { :post => "199088808" }).
|
45
|
+
should have_been_made
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe ".highlight" do
|
50
|
+
before do
|
51
|
+
stub_post("posts/highlight.json", :body => { :post => "199088808" }).
|
52
|
+
to_return(:body => fixture("posts/highlight.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
53
|
+
end
|
54
|
+
|
55
|
+
it "returns id of the highlighted post." do
|
56
|
+
@client.highlight(199088808)
|
57
|
+
a_post("posts/highlight.json", :body => { :post => "199088808" }).
|
58
|
+
should have_been_made
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe ".list" do
|
63
|
+
before do
|
64
|
+
stub_get("posts/list.json", :query => { :thread => "293757871" }).
|
65
|
+
to_return(:body => fixture("posts/list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
66
|
+
end
|
67
|
+
|
68
|
+
it "returns a list of posts for thread '293757871' ordered by the date created." do
|
69
|
+
@client.list(:thread => 293757871)
|
70
|
+
a_get("posts/list.json", :query => { :thread => "293757871" }).
|
71
|
+
should have_been_made
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe ".remove" do
|
76
|
+
before do
|
77
|
+
stub_post("posts/remove.json", :body => { :post => "199088808" }).
|
78
|
+
to_return(:body => fixture("posts/remove.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
79
|
+
end
|
80
|
+
|
81
|
+
it "returns id of the removed post." do
|
82
|
+
@client.remove(199088808)
|
83
|
+
a_post("posts/remove.json", :body => { :post => "199088808" }).
|
84
|
+
should have_been_made
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe ".report" do
|
89
|
+
before do
|
90
|
+
stub_post("posts/report.json", :body => { :post => "199088808" }).
|
91
|
+
to_return(:body => fixture("posts/report.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
92
|
+
end
|
93
|
+
|
94
|
+
it "returns id of the removed post." do
|
95
|
+
@client.report(199088808)
|
96
|
+
a_post("posts/report.json", :body => { :post => "199088808" }).
|
97
|
+
should have_been_made
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe ".restore" do
|
102
|
+
before do
|
103
|
+
stub_post("posts/restore.json", :body => { :post => "199088808" }).
|
104
|
+
to_return(:body => fixture("posts/restore.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
105
|
+
end
|
106
|
+
|
107
|
+
it "returns id of the restored post." do
|
108
|
+
@client.restore(199088808)
|
109
|
+
a_post("posts/restore.json", :body => { :post => "199088808" }).
|
110
|
+
should have_been_made
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
describe ".spam" do
|
115
|
+
before do
|
116
|
+
stub_post("posts/spam.json", :body => { :post => "199088808" }).
|
117
|
+
to_return(:body => fixture("posts/spam.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
118
|
+
end
|
119
|
+
|
120
|
+
it "returns id of post marked as spam." do
|
121
|
+
@client.spam(199088808)
|
122
|
+
a_post("posts/spam.json", :body => { :post => "199088808" }).
|
123
|
+
should have_been_made
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
describe ".unhighlight" do
|
128
|
+
before do
|
129
|
+
stub_post("posts/unhighlight.json", :body => { :post => "199088808" }).
|
130
|
+
to_return(:body => fixture("posts/unhighlight.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
131
|
+
end
|
132
|
+
|
133
|
+
it "returns id of post unhighlighted." do
|
134
|
+
@client.unhighlight(199088808)
|
135
|
+
a_post("posts/unhighlight.json", :body => { :post => "199088808" }).
|
136
|
+
should have_been_made
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
describe ".vote" do
|
141
|
+
before do
|
142
|
+
stub_post("posts/vote.json", :body => { :vote => "1", :post => "199088808" }).
|
143
|
+
to_return(:body => fixture("posts/vote.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
144
|
+
end
|
145
|
+
|
146
|
+
it "returns id of post." do
|
147
|
+
@client.vote(1, 199088808)
|
148
|
+
a_post("posts/vote.json", :body => { :vote => "1", :post => "199088808" }).
|
149
|
+
should have_been_made
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Disqussion::Reactions do
|
4
|
+
Disqussion::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Disqussion::Client.reactions
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".domains" do
|
11
|
+
before do
|
12
|
+
stub_get("reactions/domains.json", :query => { }).
|
13
|
+
to_return(:body => fixture("reactions/domains.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns ???" do
|
17
|
+
@client.domains
|
18
|
+
a_get("reactions/domains.json", :query => { }).
|
19
|
+
should have_been_made
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe ".ips" do
|
24
|
+
before do
|
25
|
+
stub_get("reactions/ips.json", :query => { }).
|
26
|
+
to_return(:body => fixture("reactions/ips.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns ???" do
|
30
|
+
@client.ips
|
31
|
+
a_get("reactions/ips.json", :query => { }).
|
32
|
+
should have_been_made
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe ".threads" do
|
37
|
+
before do
|
38
|
+
stub_get("reactions/threads.json", :query => { }).
|
39
|
+
to_return(:body => fixture("reactions/threads.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns ???" do
|
43
|
+
@client.threads
|
44
|
+
a_get("reactions/threads.json", :query => { }).
|
45
|
+
should have_been_made
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe ".users" do
|
50
|
+
before do
|
51
|
+
stub_get("reactions/users.json", :query => { }).
|
52
|
+
to_return(:body => fixture("reactions/users.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
53
|
+
end
|
54
|
+
|
55
|
+
it "returns ???" do
|
56
|
+
@client.users
|
57
|
+
a_get("reactions/users.json", :query => { }).
|
58
|
+
should have_been_made
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Disqussion::Threads do
|
4
|
+
Disqussion::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Disqussion::Client.threads
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".close" do
|
11
|
+
before do
|
12
|
+
stub_post("threads/close.json", :body => { :thread => "mythread" }).
|
13
|
+
to_return(:body => fixture("threads/close.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns code 0 response." do
|
17
|
+
@client.close("mythread")
|
18
|
+
a_post("threads/close.json", :body => { :thread => "mythread" }).
|
19
|
+
should have_been_made
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe ".details" do
|
24
|
+
before do
|
25
|
+
stub_get("threads/details.json", :query => { :thread => "mythread" }).
|
26
|
+
to_return(:body => fixture("threads/details.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns thread details." do
|
30
|
+
@client.details("mythread")
|
31
|
+
a_get("threads/details.json", :query => { :thread => "mythread" }).
|
32
|
+
should have_been_made
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe ".list" do
|
37
|
+
before do
|
38
|
+
stub_get("threads/list.json", :query => { :forum => "the88" }).
|
39
|
+
to_return(:body => fixture("threads/list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns a list of threads sorted by the date created." do
|
43
|
+
@client.list(:forum => "the88")
|
44
|
+
a_get("threads/list.json", :query => { :forum => "the88" }).
|
45
|
+
should have_been_made
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe ".listMostLiked" do
|
50
|
+
before do
|
51
|
+
stub_get("threads/listMostLiked.json", :query => { :forum => "the88" }).
|
52
|
+
to_return(:body => fixture("threads/listMostLiked.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
53
|
+
end
|
54
|
+
|
55
|
+
it "returns a list of threads sorted by number of likes." do
|
56
|
+
@client.listMostLiked(:forum => "the88")
|
57
|
+
a_get("threads/listMostLiked.json", :query => { :forum => "the88" }).
|
58
|
+
should have_been_made
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe ".listPosts" do
|
63
|
+
before do
|
64
|
+
stub_get("threads/listPosts.json", :query => { :thread => "mythread" }).
|
65
|
+
to_return(:body => fixture("threads/listPosts.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
66
|
+
end
|
67
|
+
|
68
|
+
it "returns a list of threads sorted by number of likes." do
|
69
|
+
@client.listPosts("mythread")
|
70
|
+
a_get("threads/listPosts.json", :query => { :thread => "mythread" }).
|
71
|
+
should have_been_made
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe ".open" do
|
76
|
+
before do
|
77
|
+
stub_post("threads/open.json", :body => { :thread => "12345678" }).
|
78
|
+
to_return(:body => fixture("threads/open.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
79
|
+
end
|
80
|
+
|
81
|
+
it "returns code 0 response." do
|
82
|
+
@client.open(12345678)
|
83
|
+
a_post("threads/open.json", :body => { :thread => "12345678" }).
|
84
|
+
should have_been_made
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe ".remove" do
|
89
|
+
before do
|
90
|
+
stub_post("threads/remove.json", :body => { :thread => "12345678" }).
|
91
|
+
to_return(:body => fixture("threads/remove.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
92
|
+
end
|
93
|
+
|
94
|
+
it "returns code 0 response." do
|
95
|
+
@client.remove(12345678)
|
96
|
+
a_post("threads/remove.json", :body => { :thread => "12345678" }).
|
97
|
+
should have_been_made
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe ".restore" do
|
102
|
+
before do
|
103
|
+
stub_post("threads/restore.json", :body => { :thread => "12345678" }).
|
104
|
+
to_return(:body => fixture("threads/restore.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
105
|
+
end
|
106
|
+
|
107
|
+
it "returns code 0 response." do
|
108
|
+
@client.restore(12345678)
|
109
|
+
a_post("threads/restore.json", :body => { :thread => "12345678" }).
|
110
|
+
should have_been_made
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
describe ".vote" do
|
115
|
+
before do
|
116
|
+
stub_post("threads/vote.json", :body => { :vote => "1", :thread => "12345678" }).
|
117
|
+
to_return(:body => fixture("threads/vote.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
118
|
+
end
|
119
|
+
|
120
|
+
it "returns code 0 response." do
|
121
|
+
@client.vote(1, 12345678)
|
122
|
+
a_post("threads/vote.json", :body => { :vote => "1", :thread => "12345678" }).
|
123
|
+
should have_been_made
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Disqussion::Trends do
|
4
|
+
Disqussion::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Disqussion::Client.trends
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".listTreads" do
|
11
|
+
before do
|
12
|
+
stub_get("trends/listTreads.json", :query => { }).
|
13
|
+
to_return(:body => fixture("trends/listTreads.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
end
|
15
|
+
|
16
|
+
it "returns the list of trending threads." do
|
17
|
+
@client.listTreads
|
18
|
+
a_get("trends/listTreads.json", :query => { }).
|
19
|
+
should have_been_made
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Disqussion::Users do
|
4
|
+
Disqussion::Configuration::VALID_FORMATS.each do |format|
|
5
|
+
context ".new(:format => '#{format}')" do
|
6
|
+
before do
|
7
|
+
@client = Disqussion::Client.users
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".details" do
|
11
|
+
it "get the correct resource" do
|
12
|
+
stub_get("users/details.json").
|
13
|
+
to_return(:body => fixture("users/details.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
|
15
|
+
@client.details
|
16
|
+
|
17
|
+
a_get("users/details.json").should have_been_made
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe ".follow" do
|
22
|
+
it "get the correct resource" do
|
23
|
+
stub_post("users/follow.json", :body => { :target => "12345678" }).
|
24
|
+
to_return(:body => fixture("users/follow.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
25
|
+
|
26
|
+
@client.follow(12345678)
|
27
|
+
|
28
|
+
a_post("users/follow.json", :body => { :target => "12345678"}).should have_been_made
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Disqussion::Client do
|
4
|
+
context ".new" do
|
5
|
+
before do
|
6
|
+
@client = Disqussion::Client.new
|
7
|
+
end
|
8
|
+
|
9
|
+
it "connect using the endpoint configuration" do
|
10
|
+
endpoint = URI.parse(@client.api_endpoint)
|
11
|
+
connection = @client.send(:connection).build_url(nil).to_s
|
12
|
+
connection.should == endpoint.to_s
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|