epom 0.5 → 0.6
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.
- checksums.yaml +4 -4
- data/lib/epom/ad_unit.rb +21 -0
- data/lib/epom/advertiser.rb +5 -1
- data/lib/epom/banner.rb +7 -0
- data/lib/epom/category.rb +26 -0
- data/lib/epom/version.rb +1 -1
- data/lib/epom.rb +2 -0
- data/test/epom/ad_unit_test.rb +29 -0
- data/test/epom/advertiser_test.rb +21 -0
- data/test/epom/banner_test.rb +350 -40
- data/test/epom/category_test.rb +44 -0
- metadata +7 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed69de199b68aea53df358588b94aea650b6b63a
|
4
|
+
data.tar.gz: 15b29962c1fb8d4480128df1fd78063a4021392c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77aa0de3c99ddb2251ea8812aaaf02e41a9fe588cfac82e7b0b0b5a7bbd3a2d7af930802de56ad8fcf51dc6cb7e1beaf634bd00f2899aefd3f3a27c7ee596db9
|
7
|
+
data.tar.gz: 7714e088ae212df1832a9567c474898a3a441e3ec2c80cdd827e6cdc6aa09c132031b19eca673fa685620d677b96ddf9055b500366ba2c32fee83a97224ac8ac
|
data/lib/epom/ad_unit.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'epom/epom_element'
|
2
|
+
|
3
|
+
module Epom
|
4
|
+
class AdUnit < EpomElement
|
5
|
+
|
6
|
+
def self.extended_methods
|
7
|
+
{
|
8
|
+
:get_ad_unit_list => {
|
9
|
+
:url => '/rest-api/adunit/list.do',
|
10
|
+
:body_parameters => [:hash, :timestamp, :username],
|
11
|
+
:method => :get
|
12
|
+
}
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.replace_params_in_url(url, url_params)
|
17
|
+
url
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
data/lib/epom/advertiser.rb
CHANGED
@@ -32,7 +32,11 @@ module Epom
|
|
32
32
|
:body_parameters => [:name, :contactName, :contactEmail, :description, :categoryId, :hash, :timestamp, :username],
|
33
33
|
:method => :put
|
34
34
|
},
|
35
|
-
|
35
|
+
:get_advertisers_tree => {
|
36
|
+
:url => '/rest-api/advertisers-tree.do',
|
37
|
+
:body_parameters => [:hash, :timestamp, :username],
|
38
|
+
:method => :get
|
39
|
+
},
|
36
40
|
}
|
37
41
|
end
|
38
42
|
|
data/lib/epom/banner.rb
CHANGED
@@ -508,6 +508,12 @@ module Epom
|
|
508
508
|
:url_parameters => [:bannerId],
|
509
509
|
:body_parameters => [:price, :paymentModel, :hash, :timestamp, :username],
|
510
510
|
:method => :post
|
511
|
+
},
|
512
|
+
:get_linked_banners_for_placement => {
|
513
|
+
:url => '/rest-api/banner/placement/PLACEMENT_ID/banners.do',
|
514
|
+
:url_parameters => [:placementId],
|
515
|
+
:body_parameters => [:hash, :timestamp, :username],
|
516
|
+
:method => :get
|
511
517
|
}
|
512
518
|
}
|
513
519
|
end
|
@@ -518,6 +524,7 @@ module Epom
|
|
518
524
|
url.gsub!('OS_NAME', url_params[:osName]) if url.include?('OS_NAME')
|
519
525
|
url.gsub!('TARGET_ID', url_params[:targetId]) if url.include?('TARGET_ID')
|
520
526
|
url.gsub!('COUNTRY_CODE', url_params[:countryCode]) if url.include?('COUNTRY_CODE')
|
527
|
+
url.gsub!('PLACEMENT_ID', url_params[:placementId]) if url.include?('PLACEMENT_ID')
|
521
528
|
url
|
522
529
|
end
|
523
530
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'epom/epom_element'
|
2
|
+
|
3
|
+
module Epom
|
4
|
+
class Category < EpomElement
|
5
|
+
|
6
|
+
def self.extended_methods
|
7
|
+
{
|
8
|
+
:get_advertising_categories => {
|
9
|
+
:url => '/rest-api/categories/advertising.do',
|
10
|
+
:body_parameters => [:hash, :timestamp, :username],
|
11
|
+
:method => :get
|
12
|
+
},
|
13
|
+
:get_publishing_categories => {
|
14
|
+
:url => '/rest-api/categories/publishing.do',
|
15
|
+
:body_parameters => [:hash, :timestamp, :username],
|
16
|
+
:method => :get
|
17
|
+
},
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.replace_params_in_url(url, url_params)
|
22
|
+
url
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
data/lib/epom/version.rb
CHANGED
data/lib/epom.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
require 'httmultiparty'
|
2
2
|
require 'digest'
|
3
3
|
|
4
|
+
require 'epom/ad_unit'
|
4
5
|
require 'epom/advertiser'
|
5
6
|
require 'epom/auth'
|
6
7
|
require 'epom/banner'
|
7
8
|
require 'epom/campaign'
|
9
|
+
require 'epom/category'
|
8
10
|
require 'epom/epom_element'
|
9
11
|
require 'epom/placement'
|
10
12
|
require 'epom/publisher'
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'epom/ad_unit'
|
3
|
+
|
4
|
+
class AdUnitTest < ActiveSupport::TestCase
|
5
|
+
test "truth" do
|
6
|
+
assert_kind_of Class, Epom::AdUnit
|
7
|
+
end
|
8
|
+
|
9
|
+
test "get_ad_unit_list" do
|
10
|
+
timestamp = Time.now.to_i * 1000
|
11
|
+
url_params = {
|
12
|
+
}
|
13
|
+
body_params = {
|
14
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
15
|
+
:timestamp => timestamp,
|
16
|
+
:username => ENV['username'],
|
17
|
+
}
|
18
|
+
|
19
|
+
response = Epom::AdUnit.get_ad_unit_list(url_params, body_params)
|
20
|
+
assert_instance_of Array, response
|
21
|
+
if response.count > 0
|
22
|
+
first = response[0]
|
23
|
+
assert_instance_of Fixnum, first['id']
|
24
|
+
assert_instance_of Fixnum, first['height']
|
25
|
+
assert_instance_of Fixnum, first['width']
|
26
|
+
assert_instance_of String, first['name']
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -103,6 +103,27 @@ class AdvertiserTest < ActiveSupport::TestCase
|
|
103
103
|
response['id']
|
104
104
|
end
|
105
105
|
|
106
|
+
test "get_advertisers_tree" do
|
107
|
+
timestamp = Time.now.to_i * 1000
|
108
|
+
body_params = {
|
109
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
110
|
+
:timestamp => timestamp,
|
111
|
+
:username => ENV['username']
|
112
|
+
}
|
113
|
+
url_params = {
|
114
|
+
}
|
115
|
+
|
116
|
+
response = Epom::Advertiser.get_advertisers_tree(url_params, body_params)
|
117
|
+
assert_instance_of Array, response
|
118
|
+
if response.count > 0
|
119
|
+
first = response[0]
|
120
|
+
assert_instance_of Fixnum, first['id']
|
121
|
+
assert_instance_of Array, first['category']
|
122
|
+
assert_instance_of String, first['name']
|
123
|
+
assert_instance_of Array, first['campaigns']
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
106
127
|
test "replace_params_in_url" do
|
107
128
|
assert_equal "/rest-api/advertiser/#{ENV['advertiser_id']}/campaigns.do", Epom::Advertiser.replace_params_in_url('/rest-api/advertiser/ADVERTISER_ID/campaigns.do', {:advertiserId => ENV['advertiser_id']})
|
108
129
|
end
|
data/test/epom/banner_test.rb
CHANGED
@@ -6,33 +6,14 @@ class BannerTest < ActiveSupport::TestCase
|
|
6
6
|
assert_kind_of Class, Epom::Banner
|
7
7
|
end
|
8
8
|
|
9
|
-
|
9
|
+
#TODO: create banner with LOCAL_FILE
|
10
|
+
test "create_banner" do
|
10
11
|
timestamp = Time.now.to_i * 1000
|
11
|
-
url_params = {
|
12
|
-
:bannerId => ENV['banner_id']
|
13
|
-
}
|
14
12
|
body_params = {
|
13
|
+
:campaignId => ENV['campaign_id'],
|
15
14
|
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
16
15
|
:timestamp => timestamp,
|
17
16
|
:username => ENV['username'],
|
18
|
-
}
|
19
|
-
|
20
|
-
response = Epom::Banner.get_os_values(url_params, body_params)
|
21
|
-
assert_instance_of Array, response
|
22
|
-
if response.count > 0
|
23
|
-
first = response[0]
|
24
|
-
assert_instance_of String, first
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
#TODO: create banner with LOCAL_FILE
|
29
|
-
test "create_banner" do
|
30
|
-
timestamp = Time.now.to_i * 1000
|
31
|
-
body_params = {
|
32
|
-
:campaignId => ENV['campaign_id'],
|
33
|
-
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
34
|
-
:timestamp => timestamp,
|
35
|
-
:username => ENV['username'],
|
36
17
|
:weight => 1,
|
37
18
|
:imageBannerLink => "http://beachgrooves.com/wp-content/uploads/2014/07/BeachGrooves-Logos-website2.png",
|
38
19
|
:url => "http://www.example.com",
|
@@ -46,13 +27,32 @@ class BannerTest < ActiveSupport::TestCase
|
|
46
27
|
# :imageFile => File.new('test/IMG_5457-128x128.JPG')
|
47
28
|
}
|
48
29
|
|
49
|
-
|
30
|
+
response = Epom::Banner.create_banner({}, body_params)
|
50
31
|
assert_instance_of Hash, response
|
51
32
|
assert_instance_of Fixnum, response['id']
|
52
33
|
assert_instance_of Fixnum, response['campaignId']
|
53
34
|
assert_equal ENV['campaign_id'].to_i, response['campaignId']
|
54
35
|
end
|
55
36
|
|
37
|
+
test "get_os_values" do
|
38
|
+
timestamp = Time.now.to_i * 1000
|
39
|
+
url_params = {
|
40
|
+
:bannerId => ENV['banner_id']
|
41
|
+
}
|
42
|
+
body_params = {
|
43
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
44
|
+
:timestamp => timestamp,
|
45
|
+
:username => ENV['username'],
|
46
|
+
}
|
47
|
+
|
48
|
+
response = Epom::Banner.get_os_values(url_params, body_params)
|
49
|
+
assert_instance_of Array, response
|
50
|
+
if response.count > 0
|
51
|
+
first = response[0]
|
52
|
+
assert_instance_of String, first
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
56
|
test "get_banner_ad_unit_values" do
|
57
57
|
timestamp = Time.now.to_i * 1000
|
58
58
|
body_params = {
|
@@ -88,6 +88,7 @@ class BannerTest < ActiveSupport::TestCase
|
|
88
88
|
assert_instance_of Hash, response
|
89
89
|
assert_instance_of Fixnum, response['id']
|
90
90
|
assert_instance_of String, response['paymentModel']
|
91
|
+
response
|
91
92
|
end
|
92
93
|
|
93
94
|
test "get_placements_for_banner" do
|
@@ -133,62 +134,371 @@ class BannerTest < ActiveSupport::TestCase
|
|
133
134
|
end
|
134
135
|
end
|
135
136
|
|
136
|
-
test "
|
137
|
+
test "get_banner" do
|
137
138
|
timestamp = Time.now.to_i * 1000
|
138
139
|
body_params = {
|
139
140
|
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
140
141
|
:timestamp => timestamp,
|
141
142
|
:username => ENV['username'],
|
142
143
|
}
|
144
|
+
url_params = {
|
145
|
+
:bannerId => ENV['banner_id']
|
146
|
+
}
|
147
|
+
|
148
|
+
response = Epom::Banner.get_banner(url_params, body_params)
|
149
|
+
assert_instance_of Hash, response
|
150
|
+
assert_instance_of Fixnum, response['campaignId']
|
151
|
+
assert_instance_of String, response['url']
|
152
|
+
assert_instance_of String, response['name']
|
153
|
+
assert_instance_of String, response['bannerType']
|
154
|
+
assert_instance_of Fixnum, response['adUnitId']
|
155
|
+
assert_instance_of String, response['placementType']
|
156
|
+
end
|
157
|
+
|
158
|
+
#######################
|
159
|
+
#Banner Capping API
|
160
|
+
#######################
|
161
|
+
|
162
|
+
test "get_click_capping" do
|
163
|
+
timestamp = Time.now.to_i * 1000
|
164
|
+
url_params = {
|
165
|
+
:bannerId => ENV['banner_id']
|
166
|
+
}
|
167
|
+
body_params = {
|
168
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
169
|
+
:timestamp => timestamp,
|
170
|
+
:username => ENV['username'],
|
171
|
+
}
|
143
172
|
|
144
|
-
response = Epom::Banner.
|
173
|
+
response = Epom::Banner.get_click_capping(url_params, body_params)
|
145
174
|
assert_instance_of Array, response
|
146
175
|
if response.count > 0
|
147
176
|
first = response[0]
|
148
|
-
assert_instance_of
|
149
|
-
assert_instance_of
|
150
|
-
assert_instance_of
|
151
|
-
end
|
177
|
+
assert_instance_of Fixnum, first['amount']
|
178
|
+
assert_instance_of String, first['periodType']
|
179
|
+
assert_instance_of Fixnum, first['period']
|
180
|
+
end
|
181
|
+
response
|
152
182
|
end
|
153
183
|
|
154
|
-
test "
|
184
|
+
test "get_frequency_capping" do
|
155
185
|
timestamp = Time.now.to_i * 1000
|
186
|
+
url_params = {
|
187
|
+
:bannerId => ENV['banner_id']
|
188
|
+
}
|
156
189
|
body_params = {
|
157
190
|
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
158
191
|
:timestamp => timestamp,
|
159
192
|
:username => ENV['username'],
|
160
193
|
}
|
194
|
+
|
195
|
+
response = Epom::Banner.get_frequency_capping(url_params, body_params)
|
196
|
+
assert_instance_of Array, response
|
197
|
+
if response.count > 0
|
198
|
+
first = response[0]
|
199
|
+
assert_instance_of Fixnum, first['amount']
|
200
|
+
assert_instance_of String, first['periodType']
|
201
|
+
assert_instance_of Fixnum, first['period']
|
202
|
+
end
|
203
|
+
response
|
204
|
+
end
|
205
|
+
|
206
|
+
test "set_click_capping" do
|
207
|
+
timestamp = Time.now.to_i * 1000
|
161
208
|
url_params = {
|
162
209
|
:bannerId => ENV['banner_id']
|
163
210
|
}
|
211
|
+
body_params = {
|
212
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
213
|
+
:timestamp => timestamp,
|
214
|
+
:username => ENV['username'],
|
215
|
+
:amount => [1,2,3,4,5,6,7].sample,
|
216
|
+
:evenDistribution => true,
|
217
|
+
:periodType => 'HOUR',
|
218
|
+
:period => 2
|
219
|
+
}
|
164
220
|
|
165
|
-
response = Epom::Banner.
|
221
|
+
response = Epom::Banner.set_click_capping(url_params, body_params)
|
222
|
+
|
223
|
+
click_cappings = test_get_click_capping()
|
224
|
+
click_capping = click_cappings.find { |cc| cc['amount'] == body_params[:amount] }
|
225
|
+
assert_instance_of Hash, click_capping
|
226
|
+
assert_equal true, click_capping['evenDistribution']
|
227
|
+
assert_equal 'HOUR', click_capping['periodType']
|
228
|
+
assert_equal 2, click_capping['period']
|
229
|
+
end
|
230
|
+
|
231
|
+
test "set_frequency_capping" do
|
232
|
+
timestamp = Time.now.to_i * 1000
|
233
|
+
url_params = {
|
234
|
+
:bannerId => ENV['banner_id']
|
235
|
+
}
|
236
|
+
body_params = {
|
237
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
238
|
+
:timestamp => timestamp,
|
239
|
+
:username => ENV['username'],
|
240
|
+
:amount => [1,2,3,4,5,6,7].sample,
|
241
|
+
:evenDistribution => true,
|
242
|
+
:periodType => 'HOUR',
|
243
|
+
:period => 2
|
244
|
+
}
|
245
|
+
|
246
|
+
response = Epom::Banner.set_frequency_capping(url_params, body_params)
|
247
|
+
|
248
|
+
frequency_cappings = test_get_frequency_capping()
|
249
|
+
frequency_capping = frequency_cappings.find { |cc| cc['amount'] == body_params[:amount] }
|
250
|
+
assert_instance_of Hash, frequency_capping
|
251
|
+
assert_equal true, frequency_capping['evenDistribution']
|
252
|
+
assert_equal 'HOUR', frequency_capping['periodType']
|
253
|
+
assert_equal 2, frequency_capping['period']
|
254
|
+
end
|
255
|
+
|
256
|
+
#######################
|
257
|
+
#Banner Limits API
|
258
|
+
#######################
|
259
|
+
|
260
|
+
test "get_limits" do
|
261
|
+
timestamp = Time.now.to_i * 1000
|
262
|
+
url_params = {
|
263
|
+
:bannerId => ENV['banner_id']
|
264
|
+
}
|
265
|
+
body_params = {
|
266
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
267
|
+
:timestamp => timestamp,
|
268
|
+
:username => ENV['username'],
|
269
|
+
}
|
270
|
+
|
271
|
+
response = Epom::Banner.get_limits(url_params, body_params)
|
166
272
|
assert_instance_of Hash, response
|
167
|
-
|
168
|
-
assert_instance_of String, response['url']
|
169
|
-
assert_instance_of String, response['name']
|
170
|
-
assert_instance_of String, response['bannerType']
|
171
|
-
assert_instance_of Fixnum, response['adUnitId']
|
172
|
-
assert_instance_of String, response['placementType']
|
273
|
+
response
|
173
274
|
end
|
174
275
|
|
175
|
-
test "
|
276
|
+
test "set_limits" do
|
176
277
|
timestamp = Time.now.to_i * 1000
|
278
|
+
url_params = {
|
279
|
+
:bannerId => ENV['banner_id'],
|
280
|
+
}
|
177
281
|
body_params = {
|
178
282
|
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
179
283
|
:timestamp => timestamp,
|
180
284
|
:username => ENV['username'],
|
285
|
+
:totalImpressionsLimit => 100,
|
286
|
+
:dailyImpressionsLimit => 20,
|
287
|
+
:totalClicksLimit => 50,
|
288
|
+
:dailyClicksLimit => 10,
|
289
|
+
:totalBudgetLimit => 50,
|
290
|
+
:dailyBudgetLimit => 10,
|
291
|
+
:startDate => DateTime.now.strftime('%Y-%m-%d-%H-%M'),
|
292
|
+
:endDate => Date.tomorrow.strftime('%Y-%m-%d-%H-%M'),
|
181
293
|
}
|
182
294
|
|
183
|
-
response = Epom::Banner.
|
295
|
+
response = Epom::Banner.set_limits(url_params, body_params)
|
296
|
+
|
297
|
+
limit = test_get_limits()
|
298
|
+
assert_instance_of Hash, limit
|
299
|
+
assert_equal body_params[:totalImpressionsLimit], limit['totalImpressionsLimit']
|
300
|
+
assert_equal body_params[:dailyImpressionsLimit], limit['dailyImpressionsLimit']
|
301
|
+
assert_equal body_params[:totalClicksLimit], limit['totalClicksLimit']
|
302
|
+
assert_equal body_params[:dailyClicksLimit], limit['dailyClicksLimit']
|
303
|
+
assert_equal body_params[:totalBudgetLimit], limit['totalBudgetLimit']
|
304
|
+
assert_equal body_params[:dailyBudgetLimit], limit['dailyBudgetLimit']
|
305
|
+
assert_equal body_params[:startDate], limit['startDate']
|
306
|
+
assert_equal body_params[:endDate], limit['endDate']
|
307
|
+
end
|
308
|
+
|
309
|
+
test "create_cookie_value_target" do
|
310
|
+
timestamp = Time.now.to_i * 1000
|
311
|
+
url_params = {
|
312
|
+
:bannerId => ENV['banner_id'],
|
313
|
+
}
|
314
|
+
body_params = {
|
315
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
316
|
+
:timestamp => timestamp,
|
317
|
+
:username => ENV['username'],
|
318
|
+
:cookieName => 'age',
|
319
|
+
:cookieValue => '20',
|
320
|
+
:rule => 'INCLUDE'
|
321
|
+
}
|
322
|
+
|
323
|
+
response = Epom::Banner.create_cookie_value_target(url_params, body_params)
|
324
|
+
assert_instance_of Hash, response
|
325
|
+
assert_instance_of Fixnum, response['id']
|
326
|
+
assert_equal body_params[:cookieName], response['cookieName']
|
327
|
+
assert_equal body_params[:cookieValue], response['cookieValue']
|
328
|
+
end
|
329
|
+
|
330
|
+
test "create_country_target" do
|
331
|
+
timestamp = Time.now.to_i * 1000
|
332
|
+
url_params = {
|
333
|
+
:bannerId => ENV['banner_id'],
|
334
|
+
}
|
335
|
+
body_params = {
|
336
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
337
|
+
:timestamp => timestamp,
|
338
|
+
:username => ENV['username'],
|
339
|
+
:countryCode => ENV['country_code'],
|
340
|
+
:rule => 'INCLUDE'
|
341
|
+
}
|
342
|
+
|
343
|
+
response = Epom::Banner.create_country_target(url_params, body_params)
|
344
|
+
assert_instance_of Hash, response
|
345
|
+
assert_instance_of Fixnum, response['id']
|
346
|
+
assert_equal 'COUNTRY', response['type']
|
347
|
+
end
|
348
|
+
|
349
|
+
test "create_custom_parameter_target" do
|
350
|
+
timestamp = Time.now.to_i * 1000
|
351
|
+
url_params = {
|
352
|
+
:bannerId => ENV['banner_id'],
|
353
|
+
}
|
354
|
+
body_params = {
|
355
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
356
|
+
:timestamp => timestamp,
|
357
|
+
:username => ENV['username'],
|
358
|
+
:expression => "($p1==1 || $p1=='a') && ($p2>=12 && $p2<=22)",
|
359
|
+
:rule => 'INCLUDE'
|
360
|
+
}
|
361
|
+
|
362
|
+
response = Epom::Banner.create_custom_parameter_target(url_params, body_params)
|
363
|
+
assert_instance_of Hash, response
|
364
|
+
assert_instance_of Fixnum, response['id']
|
365
|
+
assert_equal 'CUSTOM', response['type']
|
366
|
+
end
|
367
|
+
|
368
|
+
test "create_language_target" do
|
369
|
+
timestamp = Time.now.to_i * 1000
|
370
|
+
url_params = {
|
371
|
+
:bannerId => ENV['banner_id'],
|
372
|
+
}
|
373
|
+
body_params = {
|
374
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
375
|
+
:timestamp => timestamp,
|
376
|
+
:username => ENV['username'],
|
377
|
+
:languageCode => 'en',
|
378
|
+
:rule => 'INCLUDE'
|
379
|
+
}
|
380
|
+
|
381
|
+
response = Epom::Banner.create_language_target(url_params, body_params)
|
382
|
+
assert_instance_of Hash, response
|
383
|
+
assert_instance_of Fixnum, response['id']
|
384
|
+
assert_equal 'LANGUAGE', response['type']
|
385
|
+
end
|
386
|
+
|
387
|
+
test "disable_targeting" do
|
388
|
+
timestamp = Time.now.to_i * 1000
|
389
|
+
url_params = {
|
390
|
+
:bannerId => ENV['banner_id'],
|
391
|
+
}
|
392
|
+
body_params = {
|
393
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
394
|
+
:timestamp => timestamp,
|
395
|
+
:username => ENV['username'],
|
396
|
+
}
|
397
|
+
|
398
|
+
response = Epom::Banner.disable_targeting(url_params, body_params)
|
399
|
+
assert_not_instance_of Fixnum, response
|
400
|
+
end
|
401
|
+
|
402
|
+
test "enable_targeting" do
|
403
|
+
timestamp = Time.now.to_i * 1000
|
404
|
+
url_params = {
|
405
|
+
:bannerId => ENV['banner_id'],
|
406
|
+
}
|
407
|
+
body_params = {
|
408
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
409
|
+
:timestamp => timestamp,
|
410
|
+
:username => ENV['username'],
|
411
|
+
}
|
412
|
+
|
413
|
+
response = Epom::Banner.enable_targeting(url_params, body_params)
|
414
|
+
assert_not_instance_of Fixnum, response
|
415
|
+
end
|
416
|
+
|
417
|
+
#############################
|
418
|
+
#Banner Placement Linking API
|
419
|
+
#############################
|
420
|
+
|
421
|
+
test "get_banner_placements_list" do
|
422
|
+
timestamp = Time.now.to_i * 1000
|
423
|
+
url_params = {
|
424
|
+
:bannerId => ENV['banner_id'],
|
425
|
+
}
|
426
|
+
body_params = {
|
427
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
428
|
+
:timestamp => timestamp,
|
429
|
+
:username => ENV['username'],
|
430
|
+
}
|
431
|
+
|
432
|
+
response = Epom::Banner.get_banner_placements_list(url_params, body_params)
|
433
|
+
assert_instance_of Array, response
|
434
|
+
if response.count > 0
|
435
|
+
first = response[0]
|
436
|
+
assert_instance_of Fixnum, first['id']
|
437
|
+
assert_instance_of String, first['name']
|
438
|
+
end
|
439
|
+
response
|
440
|
+
end
|
441
|
+
|
442
|
+
test "create_or_update_banner_placements" do
|
443
|
+
timestamp = Time.now.to_i * 1000
|
444
|
+
url_params = {
|
445
|
+
:bannerId => ENV['banner_id'],
|
446
|
+
}
|
447
|
+
body_params = {
|
448
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
449
|
+
:timestamp => timestamp,
|
450
|
+
:username => ENV['username'],
|
451
|
+
:ids => ENV['placement_id']
|
452
|
+
}
|
453
|
+
|
454
|
+
response = Epom::Banner.create_or_update_banner_placements(url_params, body_params)
|
455
|
+
assert_instance_of Hash, response
|
456
|
+
assert response['success']
|
457
|
+
end
|
458
|
+
|
459
|
+
test "update_banner_pricing" do
|
460
|
+
timestamp = Time.now.to_i * 1000
|
461
|
+
url_params = {
|
462
|
+
:bannerId => ENV['banner_id'],
|
463
|
+
}
|
464
|
+
body_params = {
|
465
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
466
|
+
:timestamp => timestamp,
|
467
|
+
:username => ENV['username'],
|
468
|
+
:price => [2.1, 1.2, 3.4].sample,
|
469
|
+
# :paymentModel => 'CPM'
|
470
|
+
}
|
471
|
+
|
472
|
+
response = Epom::Banner.update_banner_pricing(url_params, body_params)
|
473
|
+
assert_not_instance_of Fixnum, response
|
474
|
+
|
475
|
+
pricing = test_get_banner_pricing()
|
476
|
+
assert_instance_of Hash, pricing
|
477
|
+
assert_instance_of Float, pricing['price']
|
478
|
+
assert_equal body_params[:price], pricing['price']
|
479
|
+
end
|
480
|
+
|
481
|
+
test "get_linked_banners_for_placement" do
|
482
|
+
timestamp = Time.now.to_i * 1000
|
483
|
+
url_params = {
|
484
|
+
:placementId => ENV['placement_id'],
|
485
|
+
}
|
486
|
+
body_params = {
|
487
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
488
|
+
:timestamp => timestamp,
|
489
|
+
:username => ENV['username'],
|
490
|
+
}
|
491
|
+
|
492
|
+
response = Epom::Banner.get_linked_banners_for_placement(url_params, body_params)
|
184
493
|
assert_instance_of Array, response
|
185
494
|
if response.count > 0
|
186
495
|
first = response[0]
|
187
496
|
assert_instance_of Hash, first
|
497
|
+
assert_instance_of Fixnum, first['campaignId']
|
188
498
|
assert_instance_of Fixnum, first['id']
|
189
499
|
assert_instance_of String, first['name']
|
190
500
|
end
|
191
|
-
end
|
501
|
+
end
|
192
502
|
|
193
503
|
define_get_tests_auto(Epom::Banner)
|
194
504
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'epom/category'
|
3
|
+
|
4
|
+
class CategoryTest < ActiveSupport::TestCase
|
5
|
+
test "truth" do
|
6
|
+
assert_kind_of Class, Epom::Category
|
7
|
+
end
|
8
|
+
|
9
|
+
test "get_publishing_categories" do
|
10
|
+
timestamp = Time.now.to_i * 1000
|
11
|
+
body_params = {
|
12
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
13
|
+
:timestamp => timestamp,
|
14
|
+
:username => ENV['username'],
|
15
|
+
}
|
16
|
+
|
17
|
+
response = Epom::Category.get_publishing_categories({}, body_params)
|
18
|
+
assert_instance_of Array, response
|
19
|
+
if response.count > 0
|
20
|
+
first = response[0]
|
21
|
+
assert_instance_of Hash, first
|
22
|
+
assert_instance_of Fixnum, first['id']
|
23
|
+
assert_instance_of String, first['name']
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test "get_advertising_categories" do
|
28
|
+
timestamp = Time.now.to_i * 1000
|
29
|
+
body_params = {
|
30
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
31
|
+
:timestamp => timestamp,
|
32
|
+
:username => ENV['username'],
|
33
|
+
}
|
34
|
+
|
35
|
+
response = Epom::Category.get_advertising_categories({}, body_params)
|
36
|
+
assert_instance_of Array, response
|
37
|
+
if response.count > 0
|
38
|
+
first = response[0]
|
39
|
+
assert_instance_of Hash, first
|
40
|
+
assert_instance_of Fixnum, first['id']
|
41
|
+
assert_instance_of String, first['name']
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.6'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pedro Quintero
|
@@ -105,6 +105,7 @@ files:
|
|
105
105
|
- README.rdoc
|
106
106
|
- Rakefile
|
107
107
|
- lib/epom.rb
|
108
|
+
- lib/epom/ad_unit.rb
|
108
109
|
- lib/epom/ad_unit_size.rb
|
109
110
|
- lib/epom/advertiser.rb
|
110
111
|
- lib/epom/analytic.rb
|
@@ -112,6 +113,7 @@ files:
|
|
112
113
|
- lib/epom/banner.rb
|
113
114
|
- lib/epom/banner_type.rb
|
114
115
|
- lib/epom/campaign.rb
|
116
|
+
- lib/epom/category.rb
|
115
117
|
- lib/epom/day_of_week.rb
|
116
118
|
- lib/epom/epom_element.rb
|
117
119
|
- lib/epom/limit_counters.rb
|
@@ -160,11 +162,13 @@ files:
|
|
160
162
|
- test/dummy/public/422.html
|
161
163
|
- test/dummy/public/500.html
|
162
164
|
- test/dummy/public/favicon.ico
|
165
|
+
- test/epom/ad_unit_test.rb
|
163
166
|
- test/epom/advertiser_test.rb
|
164
167
|
- test/epom/analytic_test.rb
|
165
168
|
- test/epom/auth_test.rb
|
166
169
|
- test/epom/banner_test.rb
|
167
170
|
- test/epom/campaign_test.rb
|
171
|
+
- test/epom/category_test.rb
|
168
172
|
- test/epom/placement_test.rb
|
169
173
|
- test/epom/site_test.rb
|
170
174
|
- test/epom/zone_test.rb
|
@@ -207,11 +211,13 @@ test_files:
|
|
207
211
|
- test/epom/zone_test.rb
|
208
212
|
- test/epom/site_test.rb
|
209
213
|
- test/epom/placement_test.rb
|
214
|
+
- test/epom/category_test.rb
|
210
215
|
- test/epom/campaign_test.rb
|
211
216
|
- test/epom/banner_test.rb
|
212
217
|
- test/epom/auth_test.rb
|
213
218
|
- test/epom/analytic_test.rb
|
214
219
|
- test/epom/advertiser_test.rb
|
220
|
+
- test/epom/ad_unit_test.rb
|
215
221
|
- test/dummy/config.ru
|
216
222
|
- test/dummy/Rakefile
|
217
223
|
- test/dummy/README.rdoc
|