steam-condenser 1.0.2 → 1.1.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/README.md +2 -1
- data/Rakefile +10 -1
- data/lib/steam-condenser/version.rb +1 -1
- data/lib/steam/community/app_news.rb +0 -0
- data/lib/steam/community/game_leaderboard.rb +199 -0
- data/lib/steam/community/game_leaderboard_entry.rb +43 -0
- data/lib/steam/community/game_stats.rb +16 -0
- data/lib/steam/community/steam_game.rb +18 -0
- data/lib/steam/community/steam_group.rb +9 -4
- data/lib/steam/community/steam_id.rb +45 -41
- data/lib/steam/community/tf2/tf2_beta_inventory.rb +22 -0
- data/lib/steam/community/tf2/tf2_golden_wrench.rb +0 -0
- data/lib/steam/community/tf2/tf2_stats.rb +10 -4
- data/lib/steam/community/web_api.rb +0 -0
- data/lib/steam/servers/master_server.rb +2 -1
- data/lib/steam/servers/server.rb +1 -1
- data/lib/steam/sockets/rcon_socket.rb +0 -1
- data/lib/steam/sockets/steam_socket.rb +2 -1
- data/steam-condenser.gemspec +5 -4
- data/test/core_ext/test_stringio.rb +59 -0
- data/test/fixtures/invalid.xml +2 -0
- data/test/fixtures/sonofthor.xml +882 -0
- data/test/fixtures/status_goldsrc +3 -0
- data/test/fixtures/status_source +3 -0
- data/test/fixtures/valve-members.xml +231 -0
- data/test/helper.rb +37 -0
- data/test/steam/communtiy/test_steam_group.rb +83 -0
- data/test/steam/communtiy/test_steam_id.rb +85 -0
- data/test/steam/communtiy/test_web_api.rb +98 -0
- data/test/steam/servers/test_game_server.rb +308 -0
- data/test/steam/servers/test_goldsrc_server.rb +59 -0
- data/test/steam/servers/test_master_server.rb +131 -0
- data/test/steam/servers/test_server.rb +72 -0
- data/test/steam/servers/test_source_server.rb +140 -0
- data/test/steam/sockets/test_goldsrc_socket.rb +127 -0
- data/test/steam/sockets/test_master_server_socket.rb +41 -0
- data/test/steam/sockets/test_rcon_socket.rb +109 -0
- data/test/steam/sockets/test_source_socket.rb +77 -0
- data/test/steam/sockets/test_steam_socket.rb +97 -0
- metadata +94 -34
- data/Gemfile.lock +0 -22
- data/test/query_tests.rb +0 -70
- data/test/rcon_tests.rb +0 -78
- data/test/steam/communtiy/steam_community_test_suite.rb +0 -12
- data/test/steam/communtiy/steam_group_tests.rb +0 -44
- data/test/steam/communtiy/steam_id_tests.rb +0 -49
- data/test/steam_community_tests.rb +0 -45
- data/test/stringio_additions_tests.rb +0 -77
@@ -0,0 +1,231 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<memberList>
|
3
|
+
<groupID64>103582791429521412</groupID64>
|
4
|
+
<memberCount>221</memberCount>
|
5
|
+
<totalPages>1</totalPages>
|
6
|
+
<currentPage>1</currentPage>
|
7
|
+
<startingMember>0</startingMember>
|
8
|
+
<members>
|
9
|
+
<steamID64>76561197960265740</steamID64>
|
10
|
+
<steamID64>76561197964770089</steamID64>
|
11
|
+
<steamID64>76561197967162108</steamID64>
|
12
|
+
<steamID64>76561197994632741</steamID64>
|
13
|
+
<steamID64>76561197970280218</steamID64>
|
14
|
+
<steamID64>76561197966899291</steamID64>
|
15
|
+
<steamID64>76561197980865448</steamID64>
|
16
|
+
<steamID64>76561197971161698</steamID64>
|
17
|
+
<steamID64>76561197960269040</steamID64>
|
18
|
+
<steamID64>76561197960563532</steamID64>
|
19
|
+
<steamID64>76561197971049296</steamID64>
|
20
|
+
<steamID64>76561197960265738</steamID64>
|
21
|
+
<steamID64>76561198014254115</steamID64>
|
22
|
+
<steamID64>76561197960402283</steamID64>
|
23
|
+
<steamID64>76561197978236369</steamID64>
|
24
|
+
<steamID64>76561197961301890</steamID64>
|
25
|
+
<steamID64>76561197985607672</steamID64>
|
26
|
+
<steamID64>76561197961036066</steamID64>
|
27
|
+
<steamID64>76561197971630295</steamID64>
|
28
|
+
<steamID64>76561198042665686</steamID64>
|
29
|
+
<steamID64>76561197977113234</steamID64>
|
30
|
+
<steamID64>76561197961626070</steamID64>
|
31
|
+
<steamID64>76561197968452293</steamID64>
|
32
|
+
<steamID64>76561197974593417</steamID64>
|
33
|
+
<steamID64>76561197987393094</steamID64>
|
34
|
+
<steamID64>76561197991751968</steamID64>
|
35
|
+
<steamID64>76561197975593810</steamID64>
|
36
|
+
<steamID64>76561197967144365</steamID64>
|
37
|
+
<steamID64>76561197970314454</steamID64>
|
38
|
+
<steamID64>76561197969321754</steamID64>
|
39
|
+
<steamID64>76561197970892150</steamID64>
|
40
|
+
<steamID64>76561197982261816</steamID64>
|
41
|
+
<steamID64>76561197960860649</steamID64>
|
42
|
+
<steamID64>76561197969400141</steamID64>
|
43
|
+
<steamID64>76561197984437106</steamID64>
|
44
|
+
<steamID64>76561197991390878</steamID64>
|
45
|
+
<steamID64>76561197970565175</steamID64>
|
46
|
+
<steamID64>76561197981291930</steamID64>
|
47
|
+
<steamID64>76561197961420203</steamID64>
|
48
|
+
<steamID64>76561197989577350</steamID64>
|
49
|
+
<steamID64>76561198000175595</steamID64>
|
50
|
+
<steamID64>76561197999000345</steamID64>
|
51
|
+
<steamID64>76561197972755855</steamID64>
|
52
|
+
<steamID64>76561197968575517</steamID64>
|
53
|
+
<steamID64>76561197960508417</steamID64>
|
54
|
+
<steamID64>76561197971951755</steamID64>
|
55
|
+
<steamID64>76561197960265749</steamID64>
|
56
|
+
<steamID64>76561197960265731</steamID64>
|
57
|
+
<steamID64>76561197968304490</steamID64>
|
58
|
+
<steamID64>76561197960423941</steamID64>
|
59
|
+
<steamID64>76561197973185198</steamID64>
|
60
|
+
<steamID64>76561197974807412</steamID64>
|
61
|
+
<steamID64>76561197971292977</steamID64>
|
62
|
+
<steamID64>76561197969720282</steamID64>
|
63
|
+
<steamID64>76561197968848473</steamID64>
|
64
|
+
<steamID64>76561197978206069</steamID64>
|
65
|
+
<steamID64>76561197965461135</steamID64>
|
66
|
+
<steamID64>76561197960265838</steamID64>
|
67
|
+
<steamID64>76561197970543183</steamID64>
|
68
|
+
<steamID64>76561197993060890</steamID64>
|
69
|
+
<steamID64>76561197968152886</steamID64>
|
70
|
+
<steamID64>76561197978266558</steamID64>
|
71
|
+
<steamID64>76561197960287930</steamID64>
|
72
|
+
<steamID64>76561197984751122</steamID64>
|
73
|
+
<steamID64>76561197980744144</steamID64>
|
74
|
+
<steamID64>76561197983311154</steamID64>
|
75
|
+
<steamID64>76561197960265743</steamID64>
|
76
|
+
<steamID64>76561197967377359</steamID64>
|
77
|
+
<steamID64>76561197985627266</steamID64>
|
78
|
+
<steamID64>76561197960265730</steamID64>
|
79
|
+
<steamID64>76561197960265733</steamID64>
|
80
|
+
<steamID64>76561197975724041</steamID64>
|
81
|
+
<steamID64>76561197992219796</steamID64>
|
82
|
+
<steamID64>76561197960265747</steamID64>
|
83
|
+
<steamID64>76561197960280251</steamID64>
|
84
|
+
<steamID64>76561197961314438</steamID64>
|
85
|
+
<steamID64>76561197962205142</steamID64>
|
86
|
+
<steamID64>76561197962833771</steamID64>
|
87
|
+
<steamID64>76561197962844216</steamID64>
|
88
|
+
<steamID64>76561197963997393</steamID64>
|
89
|
+
<steamID64>76561197964279229</steamID64>
|
90
|
+
<steamID64>76561197962313932</steamID64>
|
91
|
+
<steamID64>76561197975029215</steamID64>
|
92
|
+
<steamID64>76561197968282875</steamID64>
|
93
|
+
<steamID64>76561197967990561</steamID64>
|
94
|
+
<steamID64>76561197960549564</steamID64>
|
95
|
+
<steamID64>76561197972196250</steamID64>
|
96
|
+
<steamID64>76561197992467988</steamID64>
|
97
|
+
<steamID64>76561197967713982</steamID64>
|
98
|
+
<steamID64>76561197985454791</steamID64>
|
99
|
+
<steamID64>76561197962783665</steamID64>
|
100
|
+
<steamID64>76561197968343660</steamID64>
|
101
|
+
<steamID64>76561197968662512</steamID64>
|
102
|
+
<steamID64>76561197969262523</steamID64>
|
103
|
+
<steamID64>76561197969357684</steamID64>
|
104
|
+
<steamID64>76561197970195533</steamID64>
|
105
|
+
<steamID64>76561197970282885</steamID64>
|
106
|
+
<steamID64>76561197970285523</steamID64>
|
107
|
+
<steamID64>76561197970404169</steamID64>
|
108
|
+
<steamID64>76561197970533489</steamID64>
|
109
|
+
<steamID64>76561197970569650</steamID64>
|
110
|
+
<steamID64>76561197970634249</steamID64>
|
111
|
+
<steamID64>76561197970893024</steamID64>
|
112
|
+
<steamID64>76561197970968871</steamID64>
|
113
|
+
<steamID64>76561197971596380</steamID64>
|
114
|
+
<steamID64>76561197972291076</steamID64>
|
115
|
+
<steamID64>76561197972563372</steamID64>
|
116
|
+
<steamID64>76561197976027800</steamID64>
|
117
|
+
<steamID64>76561197977035150</steamID64>
|
118
|
+
<steamID64>76561197977741299</steamID64>
|
119
|
+
<steamID64>76561197977961973</steamID64>
|
120
|
+
<steamID64>76561197978257665</steamID64>
|
121
|
+
<steamID64>76561197979082126</steamID64>
|
122
|
+
<steamID64>76561197979187556</steamID64>
|
123
|
+
<steamID64>76561197980632230</steamID64>
|
124
|
+
<steamID64>76561197982227246</steamID64>
|
125
|
+
<steamID64>76561197982240193</steamID64>
|
126
|
+
<steamID64>76561197982460133</steamID64>
|
127
|
+
<steamID64>76561197983084285</steamID64>
|
128
|
+
<steamID64>76561197983819387</steamID64>
|
129
|
+
<steamID64>76561197985130967</steamID64>
|
130
|
+
<steamID64>76561197985412037</steamID64>
|
131
|
+
<steamID64>76561197985590840</steamID64>
|
132
|
+
<steamID64>76561197986943540</steamID64>
|
133
|
+
<steamID64>76561197988042654</steamID64>
|
134
|
+
<steamID64>76561197988200160</steamID64>
|
135
|
+
<steamID64>76561197991157076</steamID64>
|
136
|
+
<steamID64>76561197991937967</steamID64>
|
137
|
+
<steamID64>76561197992593548</steamID64>
|
138
|
+
<steamID64>76561197997579159</steamID64>
|
139
|
+
<steamID64>76561198002151236</steamID64>
|
140
|
+
<steamID64>76561198002212024</steamID64>
|
141
|
+
<steamID64>76561198002402082</steamID64>
|
142
|
+
<steamID64>76561197960435530</steamID64>
|
143
|
+
<steamID64>76561197969363440</steamID64>
|
144
|
+
<steamID64>76561197960789988</steamID64>
|
145
|
+
<steamID64>76561197965686610</steamID64>
|
146
|
+
<steamID64>76561197984981409</steamID64>
|
147
|
+
<steamID64>76561197975914763</steamID64>
|
148
|
+
<steamID64>76561197963156385</steamID64>
|
149
|
+
<steamID64>76561198007622651</steamID64>
|
150
|
+
<steamID64>76561197969266938</steamID64>
|
151
|
+
<steamID64>76561197968459473</steamID64>
|
152
|
+
<steamID64>76561198008486962</steamID64>
|
153
|
+
<steamID64>76561198010062752</steamID64>
|
154
|
+
<steamID64>76561197971241861</steamID64>
|
155
|
+
<steamID64>76561198032762862</steamID64>
|
156
|
+
<steamID64>76561198007696304</steamID64>
|
157
|
+
<steamID64>76561197997296694</steamID64>
|
158
|
+
<steamID64>76561197963119114</steamID64>
|
159
|
+
<steamID64>76561197974091903</steamID64>
|
160
|
+
<steamID64>76561198010168695</steamID64>
|
161
|
+
<steamID64>76561198015999740</steamID64>
|
162
|
+
<steamID64>76561198027391269</steamID64>
|
163
|
+
<steamID64>76561197969518075</steamID64>
|
164
|
+
<steamID64>76561198032155554</steamID64>
|
165
|
+
<steamID64>76561198028573551</steamID64>
|
166
|
+
<steamID64>76561198003204775</steamID64>
|
167
|
+
<steamID64>76561197960277670</steamID64>
|
168
|
+
<steamID64>76561198032776328</steamID64>
|
169
|
+
<steamID64>76561198007695232</steamID64>
|
170
|
+
<steamID64>76561197960434622</steamID64>
|
171
|
+
<steamID64>76561198004986211</steamID64>
|
172
|
+
<steamID64>76561197995557785</steamID64>
|
173
|
+
<steamID64>76561197969765131</steamID64>
|
174
|
+
<steamID64>76561197972903621</steamID64>
|
175
|
+
<steamID64>76561197967652039</steamID64>
|
176
|
+
<steamID64>76561198032822778</steamID64>
|
177
|
+
<steamID64>76561198005121830</steamID64>
|
178
|
+
<steamID64>76561198000239560</steamID64>
|
179
|
+
<steamID64>76561197961218948</steamID64>
|
180
|
+
<steamID64>76561197984750189</steamID64>
|
181
|
+
<steamID64>76561197963123419</steamID64>
|
182
|
+
<steamID64>76561198021953586</steamID64>
|
183
|
+
<steamID64>76561197980258575</steamID64>
|
184
|
+
<steamID64>76561198027226081</steamID64>
|
185
|
+
<steamID64>76561198024119209</steamID64>
|
186
|
+
<steamID64>76561198045157117</steamID64>
|
187
|
+
<steamID64>76561198005731671</steamID64>
|
188
|
+
<steamID64>76561197970572119</steamID64>
|
189
|
+
<steamID64>76561198009095613</steamID64>
|
190
|
+
<steamID64>76561197970530062</steamID64>
|
191
|
+
<steamID64>76561198007622817</steamID64>
|
192
|
+
<steamID64>76561197960649750</steamID64>
|
193
|
+
<steamID64>76561197965467401</steamID64>
|
194
|
+
<steamID64>76561197970761369</steamID64>
|
195
|
+
<steamID64>76561197971400048</steamID64>
|
196
|
+
<steamID64>76561197974050669</steamID64>
|
197
|
+
<steamID64>76561197975458088</steamID64>
|
198
|
+
<steamID64>76561197978854252</steamID64>
|
199
|
+
<steamID64>76561197987262750</steamID64>
|
200
|
+
<steamID64>76561197989808853</steamID64>
|
201
|
+
<steamID64>76561197993832904</steamID64>
|
202
|
+
<steamID64>76561198001549544</steamID64>
|
203
|
+
<steamID64>76561198007657496</steamID64>
|
204
|
+
<steamID64>76561198012711712</steamID64>
|
205
|
+
<steamID64>76561198016352617</steamID64>
|
206
|
+
<steamID64>76561198024119021</steamID64>
|
207
|
+
<steamID64>76561198024119077</steamID64>
|
208
|
+
<steamID64>76561198024119145</steamID64>
|
209
|
+
<steamID64>76561198024119167</steamID64>
|
210
|
+
<steamID64>76561198024119233</steamID64>
|
211
|
+
<steamID64>76561198024119271</steamID64>
|
212
|
+
<steamID64>76561198024119297</steamID64>
|
213
|
+
<steamID64>76561198024149372</steamID64>
|
214
|
+
<steamID64>76561198024149438</steamID64>
|
215
|
+
<steamID64>76561198024402255</steamID64>
|
216
|
+
<steamID64>76561198032490515</steamID64>
|
217
|
+
<steamID64>76561198042300915</steamID64>
|
218
|
+
<steamID64>76561198047099472</steamID64>
|
219
|
+
<steamID64>76561198049584723</steamID64>
|
220
|
+
<steamID64>76561197992637080</steamID64>
|
221
|
+
<steamID64>76561197960389850</steamID64>
|
222
|
+
<steamID64>76561198005615861</steamID64>
|
223
|
+
<steamID64>76561197999062908</steamID64>
|
224
|
+
<steamID64>76561198003340507</steamID64>
|
225
|
+
<steamID64>76561198040900440</steamID64>
|
226
|
+
<steamID64>76561198050715070</steamID64>
|
227
|
+
<steamID64>76561198024187698</steamID64>
|
228
|
+
<steamID64>76561197997728531</steamID64>
|
229
|
+
<steamID64>76561197970323416</steamID64>
|
230
|
+
</members>
|
231
|
+
</memberList>
|
data/test/helper.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# This code is free software; you can redistribute it and/or modify it under
|
2
|
+
# the terms of the new BSD License.
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011, Sebastian Staudt
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
|
8
|
+
require 'rubygems'
|
9
|
+
|
10
|
+
require 'mocha'
|
11
|
+
require 'shoulda-context'
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
14
|
+
$LOAD_PATH.unshift File.dirname(__FILE__)
|
15
|
+
|
16
|
+
# Extends TestCase functionality
|
17
|
+
class Test::Unit::TestCase
|
18
|
+
|
19
|
+
# Provides a negative assertion that's easier on the eyes
|
20
|
+
#
|
21
|
+
# The assertion fails, if the given value is `true`.
|
22
|
+
#
|
23
|
+
# @param [true, false] boolean The value that should be `false`
|
24
|
+
# @param [String] message The message that should be displayed
|
25
|
+
def assert_not(boolean, message = '')
|
26
|
+
assert !boolean, message
|
27
|
+
end
|
28
|
+
|
29
|
+
# Reads a file with fixtures from `./test/`
|
30
|
+
#
|
31
|
+
# @param [String] name The name of the fixtures file
|
32
|
+
# @return [String] The contents of the file
|
33
|
+
def fixture(name)
|
34
|
+
File.read File.join(File.dirname(__FILE__), 'fixtures', name)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# This code is free software; you can redistribute it and/or modify it under
|
2
|
+
# the terms of the new BSD License.
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011, Sebastian Staudt
|
5
|
+
|
6
|
+
require 'helper'
|
7
|
+
require 'steam/community/steam_group'
|
8
|
+
|
9
|
+
class TestSteamGroup < Test::Unit::TestCase
|
10
|
+
|
11
|
+
context 'A Steam group' do
|
12
|
+
|
13
|
+
should 'be correctly cached' do
|
14
|
+
assert_not SteamGroup.cached? 103582791429521412
|
15
|
+
|
16
|
+
group = SteamGroup.new 103582791429521412, false
|
17
|
+
|
18
|
+
assert group.cache
|
19
|
+
assert SteamGroup.cached? 103582791429521412
|
20
|
+
end
|
21
|
+
|
22
|
+
should 'be correctly cached with its custom URL' do
|
23
|
+
assert_not SteamGroup.cached? 'valve'
|
24
|
+
|
25
|
+
group = SteamGroup.new 'valve', false
|
26
|
+
|
27
|
+
assert group.cache
|
28
|
+
assert SteamGroup.cached? 'valve'
|
29
|
+
end
|
30
|
+
|
31
|
+
should 'be able to fetch its members' do
|
32
|
+
url = mock :read => fixture('valve-members.xml')
|
33
|
+
SteamGroup.any_instance.expects(:open).with('http://steamcommunity.com/groups/valve/memberslistxml?p=1', { :proxy => true }).returns url
|
34
|
+
|
35
|
+
group = SteamGroup.new 'valve'
|
36
|
+
members = group.members
|
37
|
+
|
38
|
+
assert_equal 221, group.member_count
|
39
|
+
assert_equal 76561197960265740, members.first.steam_id64
|
40
|
+
assert_not members.first.fetched?
|
41
|
+
assert_equal 76561197970323416, members.last.steam_id64
|
42
|
+
assert group.fetched?
|
43
|
+
end
|
44
|
+
|
45
|
+
should 'be found by the group ID' do
|
46
|
+
group = SteamGroup.new 103582791429521412, false
|
47
|
+
|
48
|
+
assert_equal 103582791429521412, group.group_id64
|
49
|
+
assert_equal 'http://steamcommunity.com/gid/103582791429521412', group.base_url
|
50
|
+
end
|
51
|
+
|
52
|
+
should 'be found by the group\'s custom URL' do
|
53
|
+
group = SteamGroup.new 'valve', false
|
54
|
+
|
55
|
+
assert_equal 'valve', group.custom_url
|
56
|
+
assert_equal 'http://steamcommunity.com/groups/valve', group.base_url
|
57
|
+
end
|
58
|
+
|
59
|
+
should 'raise an exception when parsing invalid XML' do
|
60
|
+
error = assert_raises SteamCondenserError do
|
61
|
+
url = mock :read => fixture('invalid.xml')
|
62
|
+
SteamGroup.any_instance.expects(:open).with('http://steamcommunity.com/groups/valve/memberslistxml?p=1', { :proxy => true }).returns url
|
63
|
+
|
64
|
+
SteamGroup.new 'valve'
|
65
|
+
end
|
66
|
+
assert_equal 'XML data could not be parsed.', error.message
|
67
|
+
end
|
68
|
+
|
69
|
+
should 'be able to parse just the member count' do
|
70
|
+
url = mock :read => fixture('valve-members.xml')
|
71
|
+
SteamGroup.any_instance.expects(:open).with('http://steamcommunity.com/groups/valve/memberslistxml', { :proxy => true }).returns url
|
72
|
+
|
73
|
+
group = SteamGroup.new 'valve', false
|
74
|
+
assert_equal 221, group.member_count
|
75
|
+
end
|
76
|
+
|
77
|
+
teardown do
|
78
|
+
SteamGroup.clear_cache
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# This code is free software; you can redistribute it and/or modify it under
|
2
|
+
# the terms of the new BSD License.
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011, Sebastian Staudt
|
5
|
+
|
6
|
+
require 'helper'
|
7
|
+
require 'steam/community/steam_id'
|
8
|
+
|
9
|
+
class TestSteamId < Test::Unit::TestCase
|
10
|
+
|
11
|
+
context 'The SteamId class' do
|
12
|
+
|
13
|
+
should 'provide a conversion between 64bit Steam IDs and STEAM_IDs' do
|
14
|
+
steam_id = SteamId.convert_community_id_to_steam_id 76561197960290418
|
15
|
+
assert_equal 'STEAM_0:0:12345', steam_id
|
16
|
+
end
|
17
|
+
|
18
|
+
should 'provide a conversion between STEAM_IDs and 64bit Steam IDs' do
|
19
|
+
steam_id64 = SteamId.convert_steam_id_to_community_id 'STEAM_0:0:12345'
|
20
|
+
assert_equal 76561197960290418, steam_id64
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'A Steam ID' do
|
26
|
+
|
27
|
+
should 'be correctly cached' do
|
28
|
+
assert_not SteamId.cached? 76561197983311154
|
29
|
+
|
30
|
+
steam_id = SteamId.new 76561197983311154, false
|
31
|
+
|
32
|
+
assert steam_id.cache
|
33
|
+
assert SteamId.cached? 76561197983311154
|
34
|
+
end
|
35
|
+
|
36
|
+
should 'be correctly cached with its custom URL' do
|
37
|
+
assert_not SteamId.cached? 'Son_of_Thor'
|
38
|
+
|
39
|
+
steam_id = SteamId.new 'Son_of_Thor', false
|
40
|
+
|
41
|
+
assert steam_id.cache
|
42
|
+
assert SteamId.cached? 'son_of_Thor'
|
43
|
+
end
|
44
|
+
|
45
|
+
should 'be able to fetch its data' do
|
46
|
+
url = mock :read => fixture('sonofthor.xml')
|
47
|
+
SteamId.any_instance.expects(:open).with('http://steamcommunity.com/id/son_of_thor?xml=1', { :proxy => true }).returns url
|
48
|
+
|
49
|
+
steam_id = SteamId.new 'Son_of_Thor'
|
50
|
+
|
51
|
+
assert_equal 76561197983311154, steam_id.steam_id64
|
52
|
+
assert steam_id.fetched?
|
53
|
+
end
|
54
|
+
|
55
|
+
should 'be found by the 64bit SteamID' do
|
56
|
+
steam_id = SteamId.new 76561197983311154, false
|
57
|
+
|
58
|
+
assert_equal 76561197983311154, steam_id.steam_id64
|
59
|
+
assert_equal 'http://steamcommunity.com/profiles/76561197983311154', steam_id.base_url
|
60
|
+
end
|
61
|
+
|
62
|
+
should 'be found by the SteamID\'s custom URL' do
|
63
|
+
steam_id = SteamId.new 'Son_of_Thor', false
|
64
|
+
|
65
|
+
assert_equal 'son_of_thor', steam_id.custom_url
|
66
|
+
assert_equal 'http://steamcommunity.com/id/son_of_thor', steam_id.base_url
|
67
|
+
end
|
68
|
+
|
69
|
+
should 'raise an exception when parsing invalid XML' do
|
70
|
+
error = assert_raises SteamCondenserError do
|
71
|
+
url = mock :read => fixture('invalid.xml')
|
72
|
+
SteamId.any_instance.expects(:open).with('http://steamcommunity.com/id/son_of_thor?xml=1', { :proxy => true }).returns url
|
73
|
+
|
74
|
+
SteamId.new 'Son_of_Thor'
|
75
|
+
end
|
76
|
+
assert_equal 'XML data could not be parsed.', error.message
|
77
|
+
end
|
78
|
+
|
79
|
+
teardown do
|
80
|
+
SteamId.clear_cache
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|