glue 0.0.1 → 0.13.0

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/bin/glue DELETED
@@ -1 +0,0 @@
1
- #!/usr/bin/env ruby
data/test/test_glue.rb DELETED
@@ -1,218 +0,0 @@
1
- require "test/unit"
2
- require "#{File.dirname(__FILE__)}/../lib/glue.rb"
3
- require "mocha"
4
-
5
- class TestGlue < Test::Unit::TestCase
6
-
7
- def setup
8
- @subdomain = 'AccountSubDomain'
9
- @username = 'Username'
10
- @password = 'Password'
11
- @client = Glue::API.new( @subdomain, @username, @password )
12
- @title = "My Title"
13
- @title2 = "Your Title"
14
- @body = "Body Text"
15
- @body2 = "Hello World"
16
- @url = "http://bit.ly/sakIM"
17
- @id = "14415"
18
- @id2 = "14416"
19
- @lurl = "http://jordandobson.com"
20
- @guid = "#{@lurl}##{@id}"
21
- @guid2 = "#{@lurl}##{@id2}"
22
- @author = "Jordan"
23
-
24
- @resp_fail = {}
25
-
26
- @resp_ok = { "rsp" => {
27
- "user" => {
28
- "author" => @author,
29
- "admin" => "true" ,
30
- "email" => nil },
31
- "stat" => "ok" }}
32
-
33
- @post_ok = { "rsp" => {
34
- "post" => {
35
- "title" => @title ,
36
- "url" => @url ,
37
- "id" => @id ,
38
- "longurl" => @lurl },
39
- "stat" => "ok" }}
40
-
41
- @rss = { "rss" => {
42
- "channel" => {
43
- "item" => {
44
- "pubDate" => "Fri, 12 Sep 2008 00:00:00 +0000",
45
- "title" => @title ,
46
- "guid" => @guid ,
47
- "dc:creator" => @author ,
48
- "description" => "<p>#{@body}</p>" ,
49
- "link" => @lurl ,
50
- "source" => "Glue" }}}}
51
-
52
- @rss_many = { "rss" => {
53
- "channel" => {
54
- "item" => [{
55
- "pubDate" => "Fri, 12 Sep 2008 00:00:00 +0000",
56
- "title" => @title ,
57
- "guid" => @guid ,
58
- "dc:creator" => @author ,
59
- "description" => "<p>#{@body}</p>" ,
60
- "link" => @lurl ,
61
- "source" => "Glue" },{
62
- "pubDate" => "Fri, 12 Sep 2009 00:00:00 +0000",
63
- "title" => @title2 ,
64
- "guid" => @guid2 ,
65
- "dc:creator" => nil ,
66
- "description" => "<p>#{@body2}</p>" ,
67
- "link" => @lurl ,
68
- "source" => "Glue" }]}}}
69
-
70
- @rss_empty = { "rss" => {
71
- "channel" => {
72
- "pubDate" => "Tue, 18 Aug 2009 10:48:28 +0000" ,
73
- "webMaster" => "glue@jordan.gluenow.com (Glue)" ,
74
- "link" => "http://jordandobson.com" }}}
75
-
76
- @html_page = { "html" => {
77
- "head" => {
78
- "title" => "GLUE | Web + Mobile Content Publishing" },
79
- "body" => "<p>Webpage Body</p>" }}
80
- end
81
-
82
- def test_raises_without_account_url
83
- assert_raise Glue::AuthError do
84
- Glue::API.new( '' , @username, @password )
85
- end
86
- end
87
-
88
- def test_raises_without_user
89
- assert_raise Glue::AuthError do
90
- Glue::API.new( @subdomain, '', @password )
91
- end
92
- end
93
-
94
- def test_raises_without_password
95
- assert_raise Glue::AuthError do
96
- Glue::API.new( @subdomain, @username, '' )
97
- end
98
- end
99
-
100
- def test_raises_with_number_account_url
101
- assert_raise NoMethodError do
102
- Glue::API.new( 00 , @username, @password )
103
- end
104
- end
105
-
106
- def test_raises_with_number_user
107
- assert_raise NoMethodError do
108
- Glue::API.new( @subdomain, 00, @password )
109
- end
110
- end
111
-
112
- def test_raises_with_number_password
113
- assert_raise NoMethodError do
114
- Glue::API.new( @subdomain, @username, 00 )
115
- end
116
- end
117
-
118
- def test_site_is_valid
119
- OpenURI.stubs(:open_uri).returns('<body id="login"></body>')
120
- assert @client.valid_site?
121
- end
122
-
123
- def test_site_is_invalid
124
- OpenURI.stubs(:open_uri).returns('<body></body>')
125
- assert !@client.valid_site?
126
- end
127
-
128
- def test_user_info_valid
129
- Glue::API.stubs(:post).returns(@resp_ok)
130
- actual = @client.user_info
131
- assert_equal "ok", actual["rsp"]["stat"]
132
- assert actual["rsp"]["user"]
133
- assert_equal "Jordan", actual["rsp"]["user"]["author"]
134
- assert_equal "true", actual["rsp"]["user"]["admin"]
135
- assert_equal nil, actual["rsp"]["user"]["email"]
136
- end
137
-
138
- def test_user_info_invalid
139
- Glue::API.stubs(:post).returns(@resp_fail)
140
- actual = @client.user_info
141
- assert_equal @resp_fail, actual
142
- end
143
-
144
- def test_bad_post_response
145
- Glue::API.stubs(:post).returns(@resp_fail)
146
- actual = @client.post(@title, @body)
147
- assert_equal @resp_fail, actual
148
- end
149
-
150
- def test_good_post_response
151
- Glue::API.stubs(:post).returns(@post_ok)
152
- actual = @client.post(@title, @body)
153
- assert_equal "ok", actual["rsp"]["stat"]
154
- assert actual["rsp"]["post"]
155
- assert_equal @title, actual["rsp"]["post"]["title"]
156
- assert_equal @url, actual["rsp"]["post"]["url"]
157
- assert_equal @id, actual["rsp"]["post"]["id"]
158
- assert_equal @lurl, actual["rsp"]["post"]["longurl"]
159
- end
160
-
161
- # Need to test pusting with the options
162
-
163
- def test_reading_single_post
164
- Glue::RSS.stubs(:get).returns(@rss)
165
- actual = Glue::RSS.new('jordan').feed(1,1)['rss']['channel']["item"]
166
- assert_equal @title, actual["title"]
167
- assert_match @body, actual["description"]
168
- assert_equal @lurl, actual["link"]
169
- assert_equal @guid, actual["guid"]
170
- assert_equal @author, actual["dc:creator"]
171
- end
172
-
173
- def test_reading_multiple_posts
174
- Glue::RSS.stubs(:get).returns(@rss_many)
175
- actual = Glue::RSS.new('jordan').feed['rss']['channel']["item"]
176
- assert_equal 2, actual.length
177
-
178
- # First Article
179
- assert_equal @title, actual.first["title"]
180
- assert_match @body, actual.first["description"]
181
- assert_equal @lurl, actual.first["link"]
182
- assert_equal @guid, actual.first["guid"]
183
- assert_equal @author, actual.first["dc:creator"]
184
-
185
- # Last Article
186
- assert_equal @title2, actual.last["title"]
187
- assert_match @body2, actual.last["description"]
188
- assert_equal nil, actual.last["dc:creator"]
189
- assert_equal @lurl, actual.last["link"]
190
- assert_equal @guid2, actual.last["guid"]
191
-
192
- assert_not_equal actual.first["title"], actual.last["title"]
193
- assert_not_equal actual.first["description"], actual.last["description"]
194
- assert_not_equal actual.first["dc:creator"], actual.last["dc:creator"]
195
- assert_not_equal actual.first["guid"], actual.last["guid"]
196
- assert_equal actual.first["link"], actual.last["link"]
197
- end
198
-
199
- def test_no_public_posts_available
200
- Glue::RSS.stubs(:get).returns(@rss_empty)
201
- subdomain = 'jordan'
202
- actual = Glue::RSS.new(subdomain).feed
203
- assert actual["rss"]["channel"]
204
- assert_nil actual["rss"]["channel"]["item"]
205
- assert_match subdomain, actual["rss"]["channel"]["webMaster"]
206
- end
207
-
208
- def test_bad_url
209
- Glue::RSS.stubs(:get).returns(@html_page)
210
- actual = Glue::RSS.new('666-DIE-666').feed
211
- assert actual["html"]
212
- assert_nil actual["rss"]
213
- assert_raise NoMethodError do
214
- actual["rss"]["channel"]
215
- end
216
- end
217
-
218
- end