Active 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|