Active 0.0.8 → 0.0.9
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/Rakefile +6 -0
- data/bin/Active +0 -0
- data/lib/.DS_Store +0 -0
- data/lib/Active.rb +1 -3
- data/lib/services/.DS_Store +0 -0
- data/lib/services/IActivity.rb +22 -0
- data/lib/services/activity.rb +75 -20
- data/lib/services/ats.rb +156 -0
- data/lib/services/reg_center.rb +221 -0
- data/lib/services/search.rb +83 -47
- data/spec/activity_spec.rb +85 -5
- data/spec/ats_spec.rb +57 -0
- data/spec/reg_spec.rb +53 -0
- data/spec/search_spec.rb +62 -2
- data/version.txt +1 -1
- metadata +30 -15
- data/.bnsignore +0 -19
data/lib/services/search.rb
CHANGED
@@ -30,12 +30,12 @@ module Active
|
|
30
30
|
|
31
31
|
class Search
|
32
32
|
attr_accessor :api_key, :start_date, :end_date, :location, :channels, :keywords, :search, :radius, :limit, :sort, :page, :offset,
|
33
|
-
:view, :facet, :sort, :num_results
|
33
|
+
:view, :facet, :sort, :num_results, :asset_ids
|
34
34
|
|
35
35
|
attr_reader :results, :endIndex, :pageSize, :searchTime, :numberOfResults, :end_point, :meta
|
36
36
|
|
37
37
|
SEARCH_URL = "http://search.active.com"
|
38
|
-
DEFAULT_TIMEOUT =
|
38
|
+
DEFAULT_TIMEOUT = 60
|
39
39
|
|
40
40
|
def initialize(data={})
|
41
41
|
self.api_key = data[:api_key] || ""
|
@@ -52,9 +52,10 @@ module Active
|
|
52
52
|
self.num_results = data[:num_results] || "10"
|
53
53
|
self.search = data[:search] || ""
|
54
54
|
self.start_date = data[:start_date] || "today"
|
55
|
-
self.end_date = data[:end_date] || "+"
|
55
|
+
self.end_date = data[:end_date] || "+"
|
56
|
+
self.asset_ids = data[:asset_ids] || []
|
57
|
+
self.asset_id = data[:asset_id] || ""
|
56
58
|
|
57
|
-
# Search.construct_url
|
58
59
|
end
|
59
60
|
|
60
61
|
def location=(value)
|
@@ -77,8 +78,18 @@ module Active
|
|
77
78
|
end
|
78
79
|
end
|
79
80
|
|
81
|
+
def asset_ids=(value)
|
82
|
+
@asset_ids = value
|
83
|
+
end
|
84
|
+
|
85
|
+
def asset_id=(value)
|
86
|
+
return if value.empty?
|
87
|
+
@asset_ids<<value
|
88
|
+
end
|
89
|
+
|
80
90
|
def end_point
|
81
91
|
meta_data = ""
|
92
|
+
# CHANNELS
|
82
93
|
channel_keys = []
|
83
94
|
@channels.each do |c|
|
84
95
|
c.to_sym
|
@@ -88,10 +99,34 @@ module Active
|
|
88
99
|
end
|
89
100
|
meta_data = channel_keys.collect { |channel| "meta:channel=#{Search.double_encode_channel(channel)}" }.join("+OR+")
|
90
101
|
puts meta_data
|
102
|
+
# ASSET IDS
|
103
|
+
|
104
|
+
|
105
|
+
unless asset_ids.empty?
|
106
|
+
meta_data += "+AND+" unless meta_data == ""
|
107
|
+
temp_ids = []
|
108
|
+
asset_ids.each do |id|
|
109
|
+
temp_ids << "meta:" + CGI.escape("assetId=#{id.gsub("-","%2d")}")
|
110
|
+
end
|
111
|
+
meta_data += temp_ids.join("+OR+")
|
112
|
+
end
|
113
|
+
|
114
|
+
|
115
|
+
# trending_asset_order=[]
|
116
|
+
# trending.each do |asset_id|
|
117
|
+
# trending_asset_order << asset_id[0]
|
118
|
+
# @m = @m + "+OR+" if @m!=""
|
119
|
+
#
|
120
|
+
# str = "assetId=#{asset_id[0].gsub("-","%2d")}"
|
121
|
+
# str = CGI.escape(str)
|
122
|
+
# @m = @m + "meta:#{str}"
|
123
|
+
# end
|
124
|
+
|
91
125
|
|
92
126
|
|
93
|
-
# meta_data = self.channels.join("+OR+")
|
94
127
|
|
128
|
+
# meta_data = self.channels.join("+OR+")
|
129
|
+
# AND DATE
|
95
130
|
meta_data += "+AND+" unless meta_data == ""
|
96
131
|
if @start_date.class == Date
|
97
132
|
@start_date = URI.escape(@start_date.strftime("%m/%d/%Y")).gsub(/\//,"%2F")
|
@@ -100,7 +135,7 @@ module Active
|
|
100
135
|
@end_date = URI.escape(@end_date.strftime("%m/%d/%Y")).gsub(/\//,"%2F")
|
101
136
|
end
|
102
137
|
meta_data += "meta:startDate:daterange:#{@start_date}..#{@end_date}"
|
103
|
-
|
138
|
+
|
104
139
|
url = "#{SEARCH_URL}/search?api_key=#{@api_key}&num=#{@num_results}&page=#{@page}&l=#{@location}&f=#{@facet}&v=#{@view}&r=#{@radius}&s=#{@sort}&k=#{@keywords.join("+")}&m=#{meta_data}"
|
105
140
|
end
|
106
141
|
|
@@ -145,46 +180,46 @@ module Active
|
|
145
180
|
return search
|
146
181
|
end
|
147
182
|
|
148
|
-
def self.construct_url(arg_options={})
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
end
|
183
|
+
# def self.construct_url(arg_options={})
|
184
|
+
# return arg_options[:url] if arg_options.keys.index(:url) #todo use has_key? #a search url was specified - bypass parsing the options (trending)
|
185
|
+
# # self.merge!(arg_options)
|
186
|
+
#
|
187
|
+
# # options[:location] = CGI.escape(options[:location]) if options[:location]
|
188
|
+
#
|
189
|
+
# # if options[:keywords].class == String
|
190
|
+
# # options[:keywords] = options[:keywords].split(",")
|
191
|
+
# # options[:keywords].each { |k| k.strip! }
|
192
|
+
# # end
|
193
|
+
#
|
194
|
+
# # if options[:channels] != nil
|
195
|
+
# # channel_keys = []
|
196
|
+
# # options[:channels].each do |c|
|
197
|
+
# # c.to_sym
|
198
|
+
# # if self.CHANNELS.include?(c)
|
199
|
+
# # channel_keys << self.CHANNELS[c]
|
200
|
+
# # end
|
201
|
+
# # end
|
202
|
+
# # channels_a = channel_keys.collect { |channel| "meta:channel=#{Search.double_encode_channel(channel)}" }
|
203
|
+
# # end
|
204
|
+
#
|
205
|
+
# meta_data = ""
|
206
|
+
# meta_data = channels_a.join("+OR+") if channels_a
|
207
|
+
#
|
208
|
+
# meta_data += "+AND+" unless meta_data == ""
|
209
|
+
# if options[:start_date].class == Date
|
210
|
+
# options[:start_date] = URI.escape(options[:start_date].strftime("%m/%d/%Y")).gsub(/\//,"%2F")
|
211
|
+
# end
|
212
|
+
#
|
213
|
+
# if options[:end_date].class == Date
|
214
|
+
# options[:end_date] = URI.escape(options[:end_date].strftime("%m/%d/%Y")).gsub(/\//,"%2F")
|
215
|
+
# end
|
216
|
+
# meta_data += "meta:startDate:daterange:#{options[:start_date]}..#{options[:end_date]}"
|
217
|
+
#
|
218
|
+
# url = "#{SEARCH_URL}/search?api_key=#{options[:api_key]}&num=#{options[:num_results]}&page=#{options[:page]}&l=#{options[:location]}&f=#{options[:facet]}&v=#{options[:view]}&r=#{options[:radius]}&s=#{options[:sort]}&k=#{options[:keywords].join("+")}&m=#{meta_data}"
|
219
|
+
# puts url
|
220
|
+
# url
|
221
|
+
# self.end_point = url
|
222
|
+
# end
|
188
223
|
|
189
224
|
private
|
190
225
|
def self.double_encode_channel str
|
@@ -195,7 +230,8 @@ module Active
|
|
195
230
|
end
|
196
231
|
|
197
232
|
end
|
198
|
-
|
233
|
+
|
234
|
+
# TODO move to a reflection service
|
199
235
|
class Categories
|
200
236
|
def self.CHANNELS
|
201
237
|
{
|
data/spec/activity_spec.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
3
3
|
require File.join(File.dirname(__FILE__), %w[ .. lib services search])
|
4
4
|
require File.join(File.dirname(__FILE__), %w[ .. lib services activity])
|
5
|
+
require File.join(File.dirname(__FILE__), %w[ .. lib services IActivity])
|
5
6
|
|
6
7
|
# No need to type Britify:: before each call
|
7
8
|
include Active::Services
|
@@ -57,6 +58,7 @@ describe Activity do
|
|
57
58
|
end
|
58
59
|
|
59
60
|
it "should strip out html from the title" do
|
61
|
+
pending
|
60
62
|
a = Activity.new(@valid_attributes)
|
61
63
|
a.title.should eql("2011 Walt Disney World Marathon")
|
62
64
|
end
|
@@ -74,13 +76,13 @@ describe Activity do
|
|
74
76
|
it "should be a valid activity" do
|
75
77
|
a = Activity.new(@valid_attributes)
|
76
78
|
a.url.should eql("http://www.active.com/running/lake-buena-vista-fl/walt-disney-world-marathon-2011")
|
77
|
-
a.
|
79
|
+
a.categories.include?("action_sports").should be_true
|
78
80
|
a.asset_id.should eql("3584C7D6-14FD-4FD1-BD07-C2A9B2925B6C")
|
79
81
|
|
80
82
|
a.title.should_not be_nil
|
81
83
|
a.start_date.should_not be_nil
|
82
84
|
a.end_date.should_not be_nil
|
83
|
-
a.
|
85
|
+
a.categories.should_not be_nil
|
84
86
|
a.desc.should_not be_nil
|
85
87
|
a.start_time.should_not be_nil
|
86
88
|
a.end_time.should_not be_nil
|
@@ -96,12 +98,90 @@ describe Activity do
|
|
96
98
|
a.address[:lat].should_not be_nil
|
97
99
|
a.address[:lng].should_not be_nil
|
98
100
|
a.address[:name].should_not be_nil
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "Activity url" do
|
104
|
+
it "should have a valid seo url: type 1" do
|
105
|
+
a = Activity.new({ :url => "http://active.com/foo.php", :meta => { :trackbackurl => "http://active.com/running/funrun", :seourl => "http://foo" } })
|
106
|
+
a.url.should == "http://active.com/running/funrun"
|
107
|
+
end
|
108
|
+
it "should have a valid seo url: type 2" do
|
109
|
+
a = Activity.new({ :url => "http://active.com/foo.php", :meta => { :trackbackurl => "http://active.com/running/funrun" } })
|
110
|
+
a.url.should == "http://active.com/running/funrun"
|
111
|
+
end
|
112
|
+
it "should have a valid seo url: type 3" do
|
113
|
+
a = Activity.new({ :url => "http://active.com/foo.php" })
|
114
|
+
a.url.should == "http://active.com/foo.php"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe "ATS data fetch" do
|
119
|
+
it "should retrive the ats data"
|
120
|
+
it "should store the date when ats was"
|
121
|
+
end
|
122
|
+
|
123
|
+
describe "ActiveNet data fetch" do
|
124
|
+
# todo get a list of ActiveNet ids
|
125
|
+
# assetTypeId: FB27C928-54DB-4ECD-B42F-482FC3C8681F
|
126
|
+
# assetTypeName: ActiveNet
|
127
|
+
# assetId: 4C2C70F1-9D53-4ECA-A04C-68A76C3A53F4
|
128
|
+
# assetId: 34DB5609-6697-400D-8C52-0305D479C9C1
|
129
|
+
# assetId: 65B56E1A-5C3E-4D9B-8EA6-0417C07E5956
|
130
|
+
|
99
131
|
|
100
|
-
|
101
|
-
|
102
|
-
|
132
|
+
it "should retrive data from ActiveNet" do
|
133
|
+
# a = Activity.new({})
|
134
|
+
# a.should receive al call to a.get_ats_data
|
135
|
+
# a.rawdata.should be a freaking hash
|
136
|
+
pending
|
137
|
+
end
|
103
138
|
|
139
|
+
describe "Lazy loading of params" do
|
140
|
+
it "should call ATS when only asset_id is set" do
|
141
|
+
ATS.should_receive(:find_by_id).with("A9EF9D79-F859-4443-A9BB-91E1833DF2D5").once
|
142
|
+
a = Activity.find_by_asset_id(:asset_id => "A9EF9D79-F859-4443-A9BB-91E1833DF2D5")
|
143
|
+
end
|
144
|
+
it "should save the asset_id" do
|
145
|
+
a = Activity.find_by_asset_id(:asset_id => "A9EF9D79-F859-4443-A9BB-91E1833DF2D5")
|
146
|
+
a.asset_id.should == "A9EF9D79-F859-4443-A9BB-91E1833DF2D5"
|
147
|
+
a.title.should == "Fitness, Pilates Mat Class (16 Yrs. & Up)"
|
148
|
+
end
|
149
|
+
it "should thorw an ActivityFindError if no record is found" do
|
150
|
+
lambda { Activity.find_by_asset_id( :asset_id => "666" ) }.should raise_error(ActivityFindError)
|
151
|
+
end
|
152
|
+
|
153
|
+
|
154
|
+
it "should save the asset_id and type" do
|
155
|
+
pending
|
156
|
+
# a = Activity.find_by_asset_id(:asset_id => "A9EF9D79-F859-4443-A9BB-91E1833DF2D5", :asset_type_id => "EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65")
|
157
|
+
# a.asset_id.should == "A9EF9D79-F859-4443-A9BB-91E1833DF2D5"
|
158
|
+
# a.asset_type_id.should == "EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65"
|
159
|
+
end
|
160
|
+
it "should obtain the asset_type_id if it wasn't provided" do
|
161
|
+
a = Activity.find_by_asset_id(:asset_id => "A9EF9D79-F859-4443-A9BB-91E1833DF2D5")
|
162
|
+
a.asset_type_id.should == "EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65"
|
163
|
+
end
|
164
|
+
it "should have an event closing date" do
|
165
|
+
# a.eventCloseDate.should == "2010-09-13T00:00:00-07:00"
|
166
|
+
end
|
167
|
+
it "should return the start time" do
|
168
|
+
# mock
|
169
|
+
# a = Activity.new({})
|
170
|
+
# a.start_time.should == 11:00 am
|
171
|
+
pending
|
172
|
+
end
|
173
|
+
end
|
104
174
|
end
|
105
175
|
|
106
176
|
|
107
177
|
end
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
data/spec/ats_spec.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# Require the spec helper relative to this file
|
2
|
+
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
3
|
+
require File.join(File.dirname(__FILE__), %w[custom_matchers_spec])
|
4
|
+
require File.join(File.dirname(__FILE__), %w[ .. lib services search])
|
5
|
+
require File.join(File.dirname(__FILE__), %w[ .. lib services activity])
|
6
|
+
require File.join(File.dirname(__FILE__), %w[ .. lib services ats])
|
7
|
+
include Active::Services
|
8
|
+
|
9
|
+
describe ATS do
|
10
|
+
before(:each) do
|
11
|
+
@valid_id = "A9EF9D79-F859-4443-A9BB-91E1833DF2D5"
|
12
|
+
@reg_center_id = "D9A22F33-8A14-4175-8D5B-D11578212A98"
|
13
|
+
end
|
14
|
+
it "should set find by id" do
|
15
|
+
a = ATS.find_by_id(@valid_id)
|
16
|
+
a.asset_id.should == @valid_id
|
17
|
+
end
|
18
|
+
it "should get the asset_type_id" do
|
19
|
+
ATS.find_by_id(@valid_id).asset_id_type.should_not be_nil
|
20
|
+
end
|
21
|
+
it "should thorw an ATSError if no record is found" do
|
22
|
+
lambda { ATS.find_by_id( "666" ) }.should raise_error(ATSError)
|
23
|
+
end
|
24
|
+
it "should get the asset metadata" do
|
25
|
+
ATS.get_asset_metadata(@valid_id).should_not be_nil
|
26
|
+
end
|
27
|
+
it "should load the asset metadata into @data" do
|
28
|
+
a = ATS.find_by_id(@valid_id)
|
29
|
+
a.load_metadata
|
30
|
+
a.data["isSearchable"].should_not be_nil
|
31
|
+
end
|
32
|
+
it "should load the lazy the asset metadata" do
|
33
|
+
a = ATS.find_by_id(@valid_id)
|
34
|
+
puts a.url
|
35
|
+
a.start_date.should_not be_nil
|
36
|
+
end
|
37
|
+
it "should only load metadata once" do
|
38
|
+
a = ATS.find_by_id(@valid_id)
|
39
|
+
puts a.url
|
40
|
+
puts a.address
|
41
|
+
ATS.should_receive(:load_metadata).once
|
42
|
+
end
|
43
|
+
it "should have an address Hash" do
|
44
|
+
a = ATS.find_by_id(@valid_id)
|
45
|
+
a.address.should be_an_instance_of(Hash)
|
46
|
+
end
|
47
|
+
it "should have a startDate Date" do
|
48
|
+
a = ATS.find_by_id(@valid_id)
|
49
|
+
a.start_date.should be_an_instance_of(Date)
|
50
|
+
end
|
51
|
+
it "should have a title String" do
|
52
|
+
a = ATS.find_by_id(@valid_id)
|
53
|
+
a.title.should be_an_instance_of(String)
|
54
|
+
end
|
55
|
+
|
56
|
+
|
57
|
+
end
|
data/spec/reg_spec.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# Require the spec helper relative to this file
|
2
|
+
require File.join(File.dirname(__FILE__), %w[spec_helper])
|
3
|
+
require File.join(File.dirname(__FILE__), %w[custom_matchers_spec])
|
4
|
+
require File.join(File.dirname(__FILE__), %w[ .. lib services search])
|
5
|
+
require File.join(File.dirname(__FILE__), %w[ .. lib services activity])
|
6
|
+
require File.join(File.dirname(__FILE__), %w[ .. lib services reg_center])
|
7
|
+
include Active::Services
|
8
|
+
|
9
|
+
describe RegCenter do
|
10
|
+
before(:each) do
|
11
|
+
@valid_id = "D9A22F33-8A14-4175-8D5B-D11578212A98"
|
12
|
+
end
|
13
|
+
it "should set find by id" do
|
14
|
+
a = RegCenter.find_by_id(@valid_id)
|
15
|
+
a.asset_id.should == @valid_id
|
16
|
+
end
|
17
|
+
it "should get the asset_type_id" do
|
18
|
+
RegCenter.find_by_id(@valid_id).asset_id_type.should_not be_nil
|
19
|
+
end
|
20
|
+
it "should thorw an RegCenterError if no record is found" do
|
21
|
+
lambda { RegCenter.find_by_id( "666" ) }.should raise_error(RegCenterError)
|
22
|
+
end
|
23
|
+
it "should get the API metadata" do
|
24
|
+
a = RegCenter.find_by_id(@valid_id)
|
25
|
+
a.data["event"].should_not be_nil
|
26
|
+
end
|
27
|
+
it "should have more details than ATS" do
|
28
|
+
a = ATS.find_by_id(@valid_id)
|
29
|
+
b = RegCenter.find_by_id(@valid_id)
|
30
|
+
a.address[:address].should be_nil
|
31
|
+
b.address[:address].should_not be_nil
|
32
|
+
end
|
33
|
+
it "should only load API metadata once" do
|
34
|
+
a = RegCenter.find_by_id(@valid_id)
|
35
|
+
puts a.url
|
36
|
+
puts a.address
|
37
|
+
RegCenter.should_receive(:get_app_api).once
|
38
|
+
end
|
39
|
+
it "should have an address Hash" do
|
40
|
+
a = RegCenter.find_by_id(@valid_id)
|
41
|
+
a.address.should be_an_instance_of(Hash)
|
42
|
+
end
|
43
|
+
it "should cleanup title" do
|
44
|
+
a = ATS.find_by_id(@valid_id)
|
45
|
+
a.title.should_not_contain("\r")
|
46
|
+
end
|
47
|
+
it "should have a title String" do
|
48
|
+
a = ATS.find_by_id(@valid_id)
|
49
|
+
a.title.should be_an_instance_of(String)
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
end
|
data/spec/search_spec.rb
CHANGED
@@ -53,6 +53,7 @@ describe "Search URL Construction" do
|
|
53
53
|
uri.query.include?("page=1").should be_true
|
54
54
|
uri.query.should have_param("num=10")
|
55
55
|
uri.query.should have_param("daterange:today..+")
|
56
|
+
uri.query.should_not have_param("assetId=")
|
56
57
|
end
|
57
58
|
|
58
59
|
it "should construct a valid url with location" do
|
@@ -122,6 +123,30 @@ describe "Search URL Construction" do
|
|
122
123
|
uri.query.should have_param("r=666")
|
123
124
|
end
|
124
125
|
|
126
|
+
it "should pass the given asset_id" do
|
127
|
+
s = Search.new({:asset_id => "12-34" })
|
128
|
+
s.should have(1).asset_ids
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should pass the given asset_id's" do
|
132
|
+
s = Search.new({:asset_ids => ["12-34","5-67","77-7"] })
|
133
|
+
s.should have(3).asset_ids
|
134
|
+
uri = URI.parse( s.end_point )
|
135
|
+
uri.query.should_not have_param("m=+AND+")
|
136
|
+
uri.query.should have_param("meta:assetId%3D12%252d34+OR+meta:assetId%3D5%252d67+OR+meta:assetId%3D77%252d7")
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should pass a query" do
|
140
|
+
uri = URI.parse( Search.search({:num_results => 50, :radius => "50", :query => "soccer"}).end_point )
|
141
|
+
uri.query.should have_param("q=soccer")
|
142
|
+
end
|
143
|
+
|
144
|
+
it "should probably encode the query value" do
|
145
|
+
pending
|
146
|
+
# uri = URI.parse( Search.search({:num_results => 50, :radius => "50", :query => "soccer balls"}).end_point )
|
147
|
+
# uri.query.should have_param("q=soccer+balls") What kind of encoding do we need
|
148
|
+
end
|
149
|
+
|
125
150
|
end
|
126
151
|
|
127
152
|
describe "Handle http server codes" do
|
@@ -145,7 +170,7 @@ describe Search do
|
|
145
170
|
after(:each) do
|
146
171
|
FakeWeb.clean_registry
|
147
172
|
end
|
148
|
-
|
173
|
+
|
149
174
|
it "should have some channels" do
|
150
175
|
Categories.CHANNELS.should_not be_nil
|
151
176
|
end
|
@@ -163,6 +188,7 @@ describe Search do
|
|
163
188
|
s.numberOfResults.should == 3
|
164
189
|
s.pageSize.should == 5
|
165
190
|
s.searchTime.should == 0.600205
|
191
|
+
|
166
192
|
end
|
167
193
|
|
168
194
|
it "should raise and error during a 404" do
|
@@ -185,7 +211,7 @@ describe Search do
|
|
185
211
|
a.title.should_not be_nil
|
186
212
|
a.start_date.should_not be_nil
|
187
213
|
a.end_date.should_not be_nil
|
188
|
-
a.
|
214
|
+
a.categories.should_not be_nil
|
189
215
|
a.desc.should_not be_nil
|
190
216
|
a.start_time.should_not be_nil
|
191
217
|
a.end_time.should_not be_nil
|
@@ -199,6 +225,16 @@ describe Search do
|
|
199
225
|
a.address[:lng].should_not be_nil
|
200
226
|
end
|
201
227
|
end
|
228
|
+
|
229
|
+
it "should handle a JSON parse error" do
|
230
|
+
# /search?api_key=&num=10&page=1&l=0&f=activities&v=json&r=50&s=trending&k=&m=meta:startDate:daterange:today..+
|
231
|
+
# FakeWeb.register_uri(:get, "http://search.active.com/search?api_key=&num=10&page=1&l=San+Diego%2C+CA%2C+US&f=activities&v=json&r=50&s=date_asc&k=&m=meta:startDate:daterange:today..+",
|
232
|
+
# :body => '{"endIndex":10,"numberOfResults":2810,"pageSize":10,"searchTime":0.86581,"_results":[{"escapedUrl":"http://www.active.com/running/myrtle-beach-sc/myrtle-beach-mini-marathon-2010","language":"en","title":"Myrtle Beach Mini Marathon | Myrtle Beach, South Carolina \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/running/myrtle-beach-sc/myrtle-beach-mini-marathon-2010","summary":"","meta":{"eventDate":"2010-10-24T07:00:00-07:00","location":"Myrtle Beach, South Carolina","tag":["event:10","Running:10"],"endDate":"2010-10-24","eventLongitude":"-78.92921","splitMediaType":["Event","5K","Half Marathon","Marathon","\u003ddifficulty:Advanced","\u003ddifficulty:Beginner","\u003ddifficulty:Intermediate"],"lastModifiedDateTime":"2010-09-13 18:15:04.753","locationName":"Myrtle Beach, South Carolina","endTime":"7:00:00","google-site-verification":"","city":"Myrtle Beach","startTime":"7:00:00","eventId":"1797753","description":"","longitude":"-78.92921","substitutionUrl":"1797753","eventLatitude":"33.75043","eventState":"South Carolina","sortDate":"2000-10-24","keywords":"Event","eventAddress":"Medieval Times","dma":"Florence - Myrtle Beach","seourl":"http://www.active.com/running/myrtle-beach-sc/myrtle-beach-mini-marathon-2010","country":"United States","category":"Activities","market":"Florence - Myrtle Beach","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","contactName":"Robert Pozo","eventZip":"29579","latitude":"33.75043","UpdateDateTime":"9/1/2010 6:09:21 PM","startDate":"2010-10-24","state":"South Carolina","mediaType":["Event","Event\\5K","Event\\Half Marathon","Event\\Marathon","\u003ddifficulty:Advanced","\u003ddifficulty:Beginner","\u003ddifficulty:Intermediate"],"estParticipants":"6000","assetId":["008540A9-C2AB-4D7F-BE68-298758B324CD","008540a9-c2ab-4d7f-be68-298758b324cd"],"participationCriteria":"Adult,Men,Women","onlineDonationAvailable":"1","assetName":["Myrtle Beach Mini Marathon","Myrtle Beach Mini Marathon"],"eventURL":"http://runmyrtlebeach.com","zip":"29579","contactPhone":"1-800-733-7089","contactEmail":"info@runmyrtlebeach.com","onlineMembershipAvailable":"0","trackbackurl":"http://www.active.com/running/myrtle-beach-sc/myrtle-beach-mini-marathon-2010","onlineRegistrationAvailable":"1","image1":"http://www.active.com/images/events/hotrace.gif","lastModifiedDate":"2010-09-13","channel":"Running"}},{"escapedUrl":"http://www.active.com/running/denver-co/fans-on-the-field-denver-stadium-5k10k-2010","language":"en","title":"Fans on the Field 2010 - Denver Stadium 5K/10K | Denver \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/running/denver-co/fans-on-the-field-denver-stadium-5k10k-2010","summary":"","meta":{"startDate":"2010-10-10","eventDate":"2010-10-10T00:00:00-07:00","location":"INVESCO Field at Mile High","tag":["event:10","Running:10"],"state":"Colorado","eventLongitude":"-105.0265","endDate":"2010-10-10","lastModifiedDateTime":"2010-08-05 16:15:18.14","splitMediaType":["Event","10K","5K"],"locationName":"INVESCO Field at Mile High","endTime":"0:00:00","mediaType":["Event","Event\\10K","Event\\5K"],"city":"Denver","google-site-verification":"","startTime":"0:00:00","assetId":["4850BB73-3701-493D-936C-C38CC0B3FD4C","4850bb73-3701-493d-936c-c38cc0b3fd4c"],"eventId":"1869635","participationCriteria":"All","description":"","longitude":"-105.0265","onlineDonationAvailable":"false","substitutionUrl":"1869635","assetName":["Fans on the Field 2010 - Denver Stadium 5K/10K","Fans on the Field 2010 - Denver Stadium 5K/10K"],"zip":"80204","contactPhone":"303-293-5315","eventLatitude":"39.73804","eventState":"Colorado","sortDate":"2000-10-10","keywords":"Event","eventAddress":"1801 Bryant Street","contactEmail":"ahinkle@nscd.org","onlineMembershipAvailable":"false","trackbackurl":"http://www.active.com/running/denver-co/fans-on-the-field-denver-stadium-5k10k-2010","country":"United States","onlineRegistrationAvailable":"true","category":"Activities","image1":"http://www.active.com/images/events/hotrace.gif","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","lastModifiedDate":"2010-08-05","eventZip":"80204","UpdateDateTime":"9/1/2010 6:09:21 PM","latitude":"39.73804","channel":["Running","Walking"]}},{"escapedUrl":"http://www.active.com/running/west-palm-beach-fl/the-palm-beaches-marathon-festival-2010","language":"en","title":"The Palm Beaches Marathon Festival | West Palm Beach \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/running/west-palm-beach-fl/the-palm-beaches-marathon-festival-2010","summary":"","meta":{"eventDate":"2010-12-05T06:00:00-08:00","location":"West Palm Beach, Florida","tag":["event:10","Running:10"],"endDate":"2010-12-05","eventLongitude":"-80.06707","splitMediaType":["Event","5K","Half Marathon","Marathon","Relay"],"lastModifiedDateTime":"2010-09-10 13:15:05.057","locationName":"West Palm Beach, Florida","endTime":"6:00:00","google-site-verification":"","city":"West Palm Beach","startTime":"6:00:00","eventId":"1815427","description":"","longitude":"-80.06707","substitutionUrl":"1815427","eventLatitude":"26.72339","eventState":"Florida","sortDate":"2000-12-05","keywords":"Event","eventAddress":"S. Flagler Drive and Evernia St.","dma":"West Palm Beach - Fort Pierce","seourl":"http://www.active.com/running/west-palm-beach-fl/the-palm-beaches-marathon-festival-2010","country":"United States","category":"Activities","market":"West Palm Beach - Fort Pierce","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","contactName":"Iva Grady","eventZip":"33401","latitude":"26.72339","UpdateDateTime":"9/1/2010 6:09:21 PM","startDate":"2010-12-05","state":"Florida","mediaType":["Event","Event\\5K","Event\\Half Marathon","Event\\Marathon","Event\\Relay"],"estParticipants":"8000","assetId":["EA86AD3C-FBBA-403A-9DDB-1D211C210225","ea86ad3c-fbba-403a-9ddb-1d211c210225"],"participationCriteria":"All","onlineDonationAvailable":"0","assetName":["The Palm Beaches Marathon Festival","The Palm Beaches Marathon Festival"],"eventURL":"http://www.pbmarathon.com","zip":"33401","contactPhone":"561-833-3711 ex. 222","contactEmail":"info@marathonofthepalmbeaches.com","onlineMembershipAvailable":"0","trackbackurl":"http://www.active.com/running/west-palm-beach-fl/the-palm-beaches-marathon-festival-2010","onlineRegistrationAvailable":"1","image1":"http://www.active.com/images/events/hotrace.gif","lastModifiedDate":"2010-09-10","channel":"Running"}},{"escapedUrl":"http://www.active.com/running/encino-ca/2nd-annual-wespark-10k-run-and-5k-run-walk-2010","language":"en","title":"2nd Annual weSPARK 10K Run \u0026amp; 5K Run Walk | Encino \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/running/encino-ca/2nd-annual-wespark-10k-run-and-5k-run-walk-2010","summary":"","meta":{"eventDate":"2010-11-14T08:00:00-08:00","location":"Balboa Park/Lake Balboa","tag":["event:10","Running:10"],"endDate":"2010-11-14","eventLongitude":"-118.4924","splitMediaType":["Event","10K","5K"],"lastModifiedDateTime":"2010-08-23 13:16:00.843","locationName":"Balboa Park/Lake Balboa","endTime":"8:00:00","google-site-verification":"","city":"Encino","startTime":"8:00:00","eventId":"1847738","description":"","longitude":"-118.4924","substitutionUrl":"1847738","eventLatitude":"34.19933","eventState":"California","sortDate":"2000-11-14","keywords":"Event","eventAddress":"6335 Woodley Avenue","dma":"Los Angeles","seourl":"http://www.active.com/running/encino-ca/2nd-annual-wespark-10k-run-and-5k-run-walk-2010","country":"United States","category":"Activities","market":"Los Angeles","contactName":"Lilliane Ballesteros","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","eventZip":"91406","latitude":"34.19933","UpdateDateTime":"9/1/2010 6:09:21 PM","startDate":"2010-11-14","state":"California","mediaType":["Event","Event\\10K","Event\\5K"],"estParticipants":"1400","assetId":["D9A22F33-8A14-4175-8D5B-D11578212A98","d9a22f33-8a14-4175-8d5b-d11578212a98"],"participationCriteria":"All","onlineDonationAvailable":"0","assetName":["2nd Annual weSPARK 10K Run \u0026 5K Run Walk","2nd Annual weSPARK 10K Run \u0026 5K Run Walk"],"eventURL":"http://www.wespark.org","zip":"91406","contactPhone":"818-906-3022","contactEmail":"lilliane@wespark.org","onlineMembershipAvailable":"0","trackbackurl":"http://www.active.com/running/encino-ca/2nd-annual-wespark-10k-run-and-5k-run-walk-2010","onlineRegistrationAvailable":"1","image1":"http://www.active.com/images/events/hotrace.gif","lastModifiedDate":"2010-08-23","channel":["Running","Walking"]}},{"escapedUrl":"http://www.active.com/running/los-angeles-playa-del-rey-ca/heroes-of-hope-race-for-research-2010","language":"en","title":"Heroes of Hope Race for Research | Los Angeles, Playa Del \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/running/los-angeles-playa-del-rey-ca/heroes-of-hope-race-for-research-2010","summary":"","meta":{"eventDate":"2010-11-07T08:00:00-08:00","location":"Dockweiler State Beach","tag":["event:10","Running:10"],"endDate":"2010-11-07","eventLongitude":"-118.4392","splitMediaType":["Event","10K","5K"],"lastModifiedDateTime":"2010-09-09 07:15:48.193","locationName":"Dockweiler State Beach","endTime":"8:00:00","google-site-verification":"","city":"Los Angeles, Playa Del Rey","startTime":"8:00:00","eventId":"1858905","description":"","longitude":"-118.4392","substitutionUrl":"1858905","eventLatitude":"33.9495","eventState":"California","sortDate":"2000-11-07","keywords":"Event","eventAddress":"8255 Vista Del Mar Blvd","dma":"Los Angeles","seourl":"http://www.active.com/running/los-angeles-playa-del-rey-ca/heroes-of-hope-race-for-research-2010","country":"United States","category":"Activities","market":"Los Angeles","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","contactName":"Lisa Kaminsky-Millar","eventZip":"90293","latitude":"33.9495","UpdateDateTime":"9/1/2010 6:09:21 PM","startDate":"2010-11-07","state":"California","mediaType":["Event","Event\\10K","Event\\5K"],"estParticipants":"1000","assetId":["0D92AB40-ED0B-4657-B00B-480B38062F1C","0d92ab40-ed0b-4657-b00b-480b38062f1c"],"participationCriteria":"All","onlineDonationAvailable":"1","assetName":["Heroes of Hope Race for Research","Heroes of Hope Race for Research"],"eventURL":"http://www.heroesofhoperace.org","zip":"90293","contactPhone":"1-866-48-4CURE","contactEmail":"heroesofhoperace@gmail.com","onlineMembershipAvailable":"0","trackbackurl":"http://www.active.com/running/los-angeles-playa-del-rey-ca/heroes-of-hope-race-for-research-2010","onlineRegistrationAvailable":"1","image1":"http://www.active.com/images/events/hotrace.gif","lastModifiedDate":"2010-09-09","channel":"Running"}},{"escapedUrl":"http://www.active.com/running/calabasas-ca/calabasas-classic-5k-10k-runs-2010","language":"en","title":"Calabasas Classic 2010 - 5k 10k Runs | Calabasas, California \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/running/calabasas-ca/calabasas-classic-5k-10k-runs-2010","summary":"","meta":{"eventDate":"2010-11-14T08:00:00-08:00","location":"Calabasas Park Centre","tag":["event:10","Green:10","Running:10"],"endDate":"2010-11-14","eventLongitude":"-118.6789","splitMediaType":["Event","1 mile","10K","5K"],"lastModifiedDateTime":"2010-09-14 21:02:55.007","locationName":"Calabasas Park Centre","endTime":"8:00:00","google-site-verification":"","city":"Calabasas","startTime":"8:00:00","eventId":"1810531","description":"","longitude":"-118.6789","substitutionUrl":"1810531","eventLatitude":"34.12794","eventState":"California","sortDate":"2000-11-14","keywords":"Event","eventAddress":"23975 Park Sorrento","dma":"Los Angeles","seourl":"http://www.active.com/running/calabasas-ca/calabasas-classic-5k-10k-runs-2010","country":"United States","category":"Activities","market":"Los Angeles","contactName":"Julie Talbert","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","eventZip":"91302","latitude":"34.12794","UpdateDateTime":"9/1/2010 6:09:21 PM","startDate":"2010-11-14","state":"California","mediaType":["Event","Event\\1 mile","Event\\10K","Event\\5K"],"estParticipants":"2500","assetId":["11B01475-8C65-4F9C-A4AC-2A3FA55FE8CD","11b01475-8c65-4f9c-a4ac-2a3fa55fe8cd"],"participationCriteria":"All","onlineDonationAvailable":"0","assetName":["Calabasas Classic 2010 - 5k 10k Runs","Calabasas Classic 2010 - 5k 10k Runs"],"eventURL":"http://www.calabasasclassic.com","zip":"91302","contactPhone":"818-715-0428","contactEmail":"rot10kd@yahoo.com","onlineMembershipAvailable":"0","trackbackurl":"http://www.active.com/running/calabasas-ca/calabasas-classic-5k-10k-runs-2010","onlineRegistrationAvailable":"1","image1":"http://www.active.com/images/events/hotrace.gif","lastModifiedDate":"2010-09-14","channel":["Running","Walking"]}},{"escapedUrl":"http://www.active.com/triathlon/miami-fl/ironman-703-miami-2010","language":"en","title":"IRONMAN 70.3 MIAMI | Miami, Florida 33132 | Saturday \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/triathlon/miami-fl/ironman-703-miami-2010","summary":"","meta":{"startDate":"2010-10-30","eventDate":"2010-10-30T07:00:00-07:00","location":"Bayfront Park - Downtown Miami","tag":["event:10","Triathlon:10"],"state":"Florida","eventLongitude":"-80.18975","endDate":"2010-10-30","lastModifiedDateTime":"2010-05-10 11:16:04.46","splitMediaType":["Event","Ironman","Long Course","\u003ddifficulty:Advanced","\u003ddifficulty:Intermediate"],"locationName":"Bayfront Park - Downtown Miami","endTime":"7:00:00","mediaType":["Event","Event\\Ironman","Event\\Long Course","\u003ddifficulty:Advanced","\u003ddifficulty:Intermediate"],"city":"Miami","google-site-verification":"","startTime":"7:00:00","assetId":["72FAE9F7-5C68-4DF8-B01C-B63AC188A06A","72fae9f7-5c68-4df8-b01c-b63ac188a06a"],"eventId":"1800302","participationCriteria":"Adult,Family,Men,Women","description":"","longitude":"-80.18975","onlineDonationAvailable":"false","substitutionUrl":"1800302","assetName":["IRONMAN 70.3 MIAMI","IRONMAN 70.3 MIAMI"],"zip":"33132","contactPhone":"3053072285","eventLatitude":"25.78649","eventState":"Florida","sortDate":"2000-10-30","keywords":"Event","eventAddress":"301 N. Biscayne Blvd.","contactEmail":"jennifer@miamitrievents.com","onlineMembershipAvailable":"false","trackbackurl":"http://www.active.com/triathlon/miami-fl/ironman-703-miami-2010","country":"United States","onlineRegistrationAvailable":"true","category":"Activities","image1":"http://www.active.com/images/events/hotrace.gif","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","lastModifiedDate":"2010-05-10","eventZip":"33132","UpdateDateTime":"9/1/2010 6:09:21 PM","latitude":"25.78649","channel":"Triathlon"}},{"escapedUrl":"http://www.active.com/triathlon/san-juan-na/ironman-703-san-juan-2011-ig329","language":"en","title":"2011 Ironman 70.3 San Juan | San Juan, 00901 | Saturday \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/triathlon/san-juan-na/ironman-703-san-juan-2011-ig329","summary":"","meta":{"startDate":"2011-03-19","eventDate":"2011-03-19T07:00:00-07:00","location":"Los Rosales Street, San Geronimo Grounds","tag":["event:10","Triathlon:10"],"state":"N/A","endDate":"2011-03-19","eventLongitude":"-66.10572","lastModifiedDateTime":"2010-06-15 14:15:08.557","splitMediaType":["Event","Ironman","\u003ddifficulty:Advanced"],"locationName":"Los Rosales Street, San Geronimo Grounds","endTime":"7:00:00","mediaType":["Event","Event\\Ironman","\u003ddifficulty:Advanced"],"city":"San Juan","google-site-verification":"","startTime":"7:00:00","assetId":["F6B819B9-9CC1-4E67-A87D-11518B05D4F3","f6b819b9-9cc1-4e67-a87d-11518b05d4f3"],"eventId":"1841595","participationCriteria":"Adult","description":"","longitude":"-66.10572","onlineDonationAvailable":"false","substitutionUrl":"1841595","assetName":["2011 Ironman 70.3 San Juan","2011 Ironman 70.3 San Juan"],"zip":"00901","contactPhone":"813-868-5940","eventLatitude":"18.46633","sortDate":"2001-03-19","keywords":"Event","contactEmail":"info@bnsportsllc.com","onlineMembershipAvailable":"false","trackbackurl":"http://www.active.com/triathlon/san-juan-na/ironman-703-san-juan-2011-ig329","country":"Puerto Rico","onlineRegistrationAvailable":"true","category":"Activities","image1":"http://www.active.com/images/events/hotrace.gif","assetTypeId":"EA4E860A-9DCD-4DAA-A7CA-4A77AD194F65","lastModifiedDate":"2010-06-15","eventZip":"00901","latitude":"18.46633","UpdateDateTime":"9/1/2010 6:09:21 PM","channel":"Triathlon"}},{"escapedUrl":"http://www.active.com/triathlon/st-george-ut/ford-ironman-st-george-2011","language":"en","title":"2011 Ford Ironman St. George | St. George, Utah 84737 \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/triathlon/st-george-ut/ford-ironman-st-george-2011","summary":"","meta":{"startDate":"2011-05-07","eventDate":"2011-05-07T07:00:00-07:00","location":"Sand Hollow State Park,","tag":["event:10","Triathlon:10"],"state":"Utah","eventLongitude":"-113.1508","endDate":"2011-05-07","lastModifiedDateTime":"2010-07-22 11:15:08.46","splitMediaType":["Event","Ironman","Long Course"],"locationName":"Sand Hollow State Park,","endTime":"7:00:00","mediaType":["Event","Event\\Ironman","Event\\Long Course"],"city":"St. George","google-site-verification":"","startTime":"7:00:00","assetId":["A10B5BC1-BD95-4AFE-A1F6-35F6099E3636","a10b5bc1-bd95-4afe-a1f6-35f6099e3636"],"eventId":"1848350","participationCriteria":"All","description":"","longitude":"-113.1508","onlineDonationAvailable":"false","substitutionUrl":"1848350","assetName":["2011 Ford Ironman St. George","2011 Ford Ironman St. George"],"zip":"84737","contactPhone":"813-868-5940","eventLatitude":"37.15574","eventState":"Utah","sortDate":"2001-05-07","keywords":"Event","eventAddress":"4405 West 3600 South","contactEmail":"stgeorge@ironman.com","onlineMembershipAvailable":"false","trackbackurl":"http://www.active.com/triathlon/st-george-ut/ford-ironman-st-george-2011","country":"United States","onlineRegistrationAvailable":"true","category":"Activities","image1":"http://www.active.com/images/events/hotrace.gif","assetTypeId":"3BF82BBE-CF88-4E8C-A56F-78F5CE87E4C6","lastModifiedDate":"2010-07-22","eventZip":"84737","UpdateDateTime":"9/1/2010 6:09:21 PM","latitude":"37.15574","channel":"Triathlon"}},{"escapedUrl":"http://www.active.com/triathlon/galveston-tx/memorial-hermann-ironman-703-texas-and-lonestar-sprint-triathlon-2011","language":"en","title":"2011 Memorial Hermann Ironman 70.3 Texas \u0026amp; Lonestar \u003cb\u003e...\u003c/b\u003e","url":"http://www.active.com/triathlon/galveston-tx/memorial-hermann-ironman-703-texas-and-lonestar-sprint-triathlon-2011","summary":"","meta":{"startDate":"2011-04-09","eventDate":"2011-04-09T07:00:00-07:00","location":"Moody Gardens","state":"Texas","endDate":"2011-04-10","eventLongitude":"-94.90395","lastModifiedDateTime":"2010-05-12 09:16:41.91","splitMediaType":["Event","Ironman","Long Course","Sprint"],"locationName":"Moody Gardens","endTime":"7:00:00","mediaType":["Event","Event\\Ironman","Event\\Long Course","Event\\Sprint"],"city":"Galveston","google-site-verification":"","startTime":"7:00:00","assetId":["A40CC533-D502-4953-8157-DBB64D7FC4C2","a40cc533-d502-4953-8157-dbb64d7fc4c2"],"eventId":"1859810","participationCriteria":"All","description":"","longitude":"-94.90395","onlineDonationAvailable":"false","substitutionUrl":"1859810","assetName":["2011 Memorial Hermann Ironman 70.3 Texas \u0026 Lonestar Sprint Triathlon","2011 Memorial Hermann Ironman 70.3 Texas \u0026 Lonestar Sprint Triathlon"],"zip":"77554","contactPhone":"813-868-5940","eventLatitude":"29.24699","eventState":"Texas","sortDate":"2001-04-09","keywords":"Event","contactEmail":"texas70.3@ironman.com","onlineMembershipAvailable":"false","trackbackurl":"http://www.active.com/triathlon/galveston-tx/memorial-hermann-ironman-703-texas-and-lonestar-sprint-triathlon-2011","country":"United States","onlineRegistrationAvailable":"true","category":"Activities","image1":"http://www.active.com/images/events/hotrace.gif","assetTypeId":"3BF82BBE-CF88-4E8C-A56F-78F5CE87E4C6","lastModifiedDate":"2010-05-12","eventZip":"77554","latitude":"29.24699","UpdateDateTime":"9/1/2010 6:09:21 PM","channel":"Triathlon"}}]}',
|
233
|
+
# :status => ["200", "Found"])
|
234
|
+
# This query is throwing this error "source did not contain any JSON!" and we need to handle it
|
235
|
+
# s = Search.search( {:radius=>"50", :keywords=>"", :page=>1, :num_results=>10, :location=>"0"} )
|
236
|
+
pending
|
237
|
+
end
|
202
238
|
|
203
239
|
end
|
204
240
|
|
@@ -232,6 +268,9 @@ describe "Call Live Data" do
|
|
232
268
|
d >= Date.new(2010,1,1)
|
233
269
|
}
|
234
270
|
end
|
271
|
+
s.results.each do |a|
|
272
|
+
a.asset_id.should_not be_nil
|
273
|
+
end
|
235
274
|
end
|
236
275
|
|
237
276
|
# our model should be updated to handle multiple categories
|
@@ -252,6 +291,11 @@ describe "Call Live Data" do
|
|
252
291
|
s = Search.search( {:channels => [:yoga]} )
|
253
292
|
s.should have(10).results
|
254
293
|
end
|
294
|
+
|
295
|
+
it "should not set sort to an empty string" do
|
296
|
+
s = Search.search( {:sort => ""} )
|
297
|
+
s.sort.should_not be_empty
|
298
|
+
end
|
255
299
|
|
256
300
|
it "should find activities that have been recently added"
|
257
301
|
|
@@ -269,6 +313,22 @@ describe "Call Live Data" do
|
|
269
313
|
|
270
314
|
it "should order by date DATE_DESC"
|
271
315
|
|
316
|
+
it "should order by the date created" do
|
317
|
+
# results = Search.search( {:channels => ['Running'], :sort => 'created_at_asc'} )
|
318
|
+
pending
|
319
|
+
end
|
320
|
+
|
321
|
+
end
|
322
|
+
|
323
|
+
|
324
|
+
describe "Parametric search" do
|
325
|
+
describe "Parametric search for running channel" do
|
326
|
+
it "should find by splitMediaType for the Running channel" do
|
327
|
+
# http://developer.active.com/docs/Activecom_Search_API_Reference
|
328
|
+
end
|
329
|
+
end
|
330
|
+
describe "Parametric search for triathlon channel" do
|
331
|
+
end
|
272
332
|
end
|
273
333
|
|
274
334
|
|