epom 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +28 -0
- data/config/application.yml +41 -0
- data/lib/epom.rb +22 -0
- data/lib/epom/ad_unit_size.rb +15 -0
- data/lib/epom/advertiser.rb +45 -0
- data/lib/epom/auth.rb +31 -0
- data/lib/epom/banner.rb +525 -0
- data/lib/epom/banner_type.rb +15 -0
- data/lib/epom/campaign.rb +508 -0
- data/lib/epom/day_of_week.rb +11 -0
- data/lib/epom/epom_element.rb +61 -0
- data/lib/epom/limit_counters.rb +10 -0
- data/lib/epom/payment_model.rb +9 -0
- data/lib/epom/period_type.rb +9 -0
- data/lib/epom/placement.rb +56 -0
- data/lib/epom/placement_type.rb +7 -0
- data/lib/epom/publisher.rb +6 -0
- data/lib/epom/relation.rb +9 -0
- data/lib/epom/site.rb +84 -0
- data/lib/epom/version.rb +3 -0
- data/lib/epom/zone.rb +38 -0
- data/lib/tasks/epom_tasks.rake +4 -0
- data/test/IMG_5457-128x128.JPG +0 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +26 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +41 -0
- data/test/dummy/config/environments/production.rb +79 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +56 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +16 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +4 -0
- data/test/dummy/log/test.log +17350 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/epom/advertiser_test.rb +85 -0
- data/test/epom/auth_test.rb +50 -0
- data/test/epom/banner_test.rb +194 -0
- data/test/epom/campaign_test.rb +65 -0
- data/test/epom/placement_test.rb +53 -0
- data/test/epom/site_test.rb +136 -0
- data/test/epom/zone_test.rb +67 -0
- data/test/epom_test.rb +38 -0
- data/test/logo-128x128.png +0 -0
- data/test/test.php +51 -0
- data/test/test.rb +21 -0
- data/test/test_helper.rb +55 -0
- metadata +256 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'epom/campaign'
|
3
|
+
|
4
|
+
class CampaignTest < ActiveSupport::TestCase
|
5
|
+
test "truth" do
|
6
|
+
assert_kind_of Class, Epom::Campaign
|
7
|
+
end
|
8
|
+
|
9
|
+
define_get_tests_auto(Epom::Campaign)
|
10
|
+
|
11
|
+
test "get_actions" do
|
12
|
+
timestamp = Time.now.to_i * 1000
|
13
|
+
url_params = {
|
14
|
+
:campaignId => ENV['campaign_id'],
|
15
|
+
}
|
16
|
+
body_params = {
|
17
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
18
|
+
:timestamp => timestamp,
|
19
|
+
:username => ENV['username'],
|
20
|
+
}
|
21
|
+
|
22
|
+
response = Epom::Campaign.get_actions(url_params, body_params)
|
23
|
+
assert_instance_of Array, response
|
24
|
+
if response.count > 0
|
25
|
+
first = response[0]
|
26
|
+
assert_instance_of String, first['key']
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
test "get_targetings" do
|
31
|
+
timestamp = Time.now.to_i * 1000
|
32
|
+
url_params = {
|
33
|
+
:campaignId => ENV['campaign_id'],
|
34
|
+
}
|
35
|
+
body_params = {
|
36
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
37
|
+
:timestamp => timestamp,
|
38
|
+
:username => ENV['username'],
|
39
|
+
}
|
40
|
+
|
41
|
+
response = Epom::Campaign.get_targetings(url_params, body_params)
|
42
|
+
assert_instance_of Array, response
|
43
|
+
if response.count > 0
|
44
|
+
first = response[0]
|
45
|
+
assert_instance_of Fixnum, first['id']
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
test "create_campaign" do
|
50
|
+
timestamp = Time.now.to_i * 1000
|
51
|
+
body_params = {
|
52
|
+
:advertiserId => ENV['advertiser_id'],
|
53
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
54
|
+
:timestamp => timestamp,
|
55
|
+
:username => ENV['username'],
|
56
|
+
:name => "campaign #{timestamp}",
|
57
|
+
:description => "description for campaign #{timestamp}",
|
58
|
+
:active => true}
|
59
|
+
|
60
|
+
response = Epom::Campaign.create_campaign({}, body_params)
|
61
|
+
assert_instance_of Hash, response
|
62
|
+
assert_instance_of Fixnum, response['id']
|
63
|
+
assert_instance_of String, response['name']
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'epom/placement'
|
3
|
+
|
4
|
+
class PlacementTest < ActiveSupport::TestCase
|
5
|
+
test "truth" do
|
6
|
+
assert_kind_of Class, Epom::Placement
|
7
|
+
end
|
8
|
+
|
9
|
+
test "get_placement_summary" 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
|
+
:placementIds => ENV['placement_id']
|
16
|
+
}
|
17
|
+
url_params = {}
|
18
|
+
|
19
|
+
response = Epom::Placement.get_placement_summary(url_params, body_params)
|
20
|
+
assert_instance_of Array, response
|
21
|
+
if response.count > 0
|
22
|
+
first = response.first
|
23
|
+
assert_instance_of Hash, first
|
24
|
+
assert_instance_of Fixnum, first['id']
|
25
|
+
assert_instance_of Array, first['category']
|
26
|
+
assert_instance_of String, first['name']
|
27
|
+
assert_instance_of String, first['key']
|
28
|
+
assert_instance_of String, first['size']
|
29
|
+
assert_instance_of Fixnum, first['zoneId']
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
test "create_standard_placement" do
|
34
|
+
timestamp = Time.now.to_i * 1000
|
35
|
+
body_params = {
|
36
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
37
|
+
:timestamp => timestamp,
|
38
|
+
:username => ENV['username'],
|
39
|
+
:zoneId => ENV['zone_id'],
|
40
|
+
:type => Epom::PlacementType::SITE_PLACEMENT,
|
41
|
+
:name => "placement #{timestamp}",
|
42
|
+
:adUnitId => 10,
|
43
|
+
'size.height' => 200,
|
44
|
+
'size.width' => 350,
|
45
|
+
}
|
46
|
+
url_params = {}
|
47
|
+
|
48
|
+
response = Epom::Placement.create_standard_placement(url_params, body_params)
|
49
|
+
assert_instance_of Hash, response
|
50
|
+
assert_instance_of Fixnum, response['id']
|
51
|
+
assert response['success']
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'epom/site'
|
3
|
+
|
4
|
+
class SiteTest < ActiveSupport::TestCase
|
5
|
+
test "truth" do
|
6
|
+
assert_kind_of Class, Epom::Site
|
7
|
+
end
|
8
|
+
|
9
|
+
define_get_tests_auto(Epom::Site)
|
10
|
+
|
11
|
+
test "get_sites" do
|
12
|
+
timestamp = Time.now.to_i * 1000
|
13
|
+
body_params = {
|
14
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
15
|
+
:timestamp => timestamp,
|
16
|
+
:username => ENV['username'],
|
17
|
+
}
|
18
|
+
url_params = {}
|
19
|
+
|
20
|
+
response = Epom::Site.get_sites(url_params, body_params)
|
21
|
+
assert_instance_of Array, response
|
22
|
+
if response.count > 0
|
23
|
+
first = response.first
|
24
|
+
assert_instance_of Hash, first
|
25
|
+
assert_instance_of Fixnum, first['id']
|
26
|
+
assert_instance_of String, first['name']
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
test "get_site_cpm_threshold_summary" do
|
31
|
+
timestamp = Time.now.to_i * 1000
|
32
|
+
body_params = {
|
33
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
34
|
+
:timestamp => timestamp,
|
35
|
+
:username => ENV['username'],
|
36
|
+
}
|
37
|
+
url_params = {
|
38
|
+
:siteId => ENV['site_id']
|
39
|
+
}
|
40
|
+
|
41
|
+
response = Epom::Site.get_site_cpm_threshold_summary(url_params, body_params)
|
42
|
+
assert_instance_of Array, response
|
43
|
+
if response.count > 0
|
44
|
+
first = response.first
|
45
|
+
assert_instance_of Hash, first
|
46
|
+
assert_instance_of Float, first['cpmThreshold']
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
test "get_site_pricing" do
|
51
|
+
timestamp = Time.now.to_i * 1000
|
52
|
+
body_params = {
|
53
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
54
|
+
:timestamp => timestamp,
|
55
|
+
:username => ENV['username'],
|
56
|
+
}
|
57
|
+
url_params = {
|
58
|
+
:siteId => ENV['site_id']
|
59
|
+
}
|
60
|
+
|
61
|
+
response = Epom::Site.get_site_pricing(url_params, body_params)
|
62
|
+
assert_instance_of Hash, response
|
63
|
+
assert_instance_of String, response['paymentModel']
|
64
|
+
assert_instance_of Float, response['price']
|
65
|
+
assert_instance_of String, response['pricingType']
|
66
|
+
end
|
67
|
+
|
68
|
+
test "set_site_pricing" do
|
69
|
+
timestamp = Time.now.to_i * 1000
|
70
|
+
url_params = {
|
71
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
72
|
+
:timestamp => timestamp,
|
73
|
+
:username => ENV['username'],
|
74
|
+
:siteId => ENV['site_id']
|
75
|
+
}
|
76
|
+
body_params = '{"paymentModel":"FIXED_PRICE","pricingType":"CPM","price":4.2}'
|
77
|
+
|
78
|
+
response = Epom::Site.set_site_pricing(url_params, body_params)
|
79
|
+
assert_instance_of Hash, response
|
80
|
+
assert response['success']
|
81
|
+
end
|
82
|
+
|
83
|
+
test "set_placement_pricing" do
|
84
|
+
timestamp = Time.now.to_i * 1000
|
85
|
+
url_params = {
|
86
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
87
|
+
:timestamp => timestamp,
|
88
|
+
:username => ENV['username'],
|
89
|
+
:placementId => ENV['placement_id'],
|
90
|
+
}
|
91
|
+
body_params = '{"paymentModel":"FIXED_PRICE","pricingType":"CPC","price":1.2}'
|
92
|
+
|
93
|
+
response = Epom::Site.set_placement_pricing(url_params, body_params)
|
94
|
+
assert_instance_of Hash, response
|
95
|
+
assert response['success']
|
96
|
+
end
|
97
|
+
|
98
|
+
test "create_site" do
|
99
|
+
timestamp = Time.now.to_i * 1000
|
100
|
+
body_params = {
|
101
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
102
|
+
:timestamp => timestamp,
|
103
|
+
:username => ENV['username'],
|
104
|
+
:name => "publisher_#{timestamp}",
|
105
|
+
:url => 'http://www.publisher.com',
|
106
|
+
:email => "publisher@example.com",
|
107
|
+
:categoryId => 2
|
108
|
+
}
|
109
|
+
|
110
|
+
response = Epom::Site.create_site({}, body_params)
|
111
|
+
assert_instance_of Hash, response
|
112
|
+
assert_instance_of Fixnum, response['id']
|
113
|
+
assert response['success']
|
114
|
+
end
|
115
|
+
|
116
|
+
test "get_sites_zones" do
|
117
|
+
timestamp = Time.now.to_i * 1000
|
118
|
+
body_params = {
|
119
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
120
|
+
:timestamp => timestamp,
|
121
|
+
:username => ENV['username'],
|
122
|
+
}
|
123
|
+
url_params = {
|
124
|
+
:siteId => ENV['site_id']
|
125
|
+
}
|
126
|
+
|
127
|
+
response = Epom::Site.get_sites_zones(url_params, body_params)
|
128
|
+
assert_instance_of Array, response
|
129
|
+
if response.count > 0
|
130
|
+
first = response[0]
|
131
|
+
assert_instance_of Fixnum, first['id']
|
132
|
+
assert_instance_of String, first['name']
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'epom/zone'
|
3
|
+
|
4
|
+
class ZoneTest < ActiveSupport::TestCase
|
5
|
+
test "truth" do
|
6
|
+
assert_kind_of Class, Epom::Zone
|
7
|
+
end
|
8
|
+
|
9
|
+
test "create_zone" 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
|
+
:name => "zone #{timestamp}",
|
16
|
+
:description => "description",
|
17
|
+
:siteId => ENV['site_id']
|
18
|
+
}
|
19
|
+
url_params = {
|
20
|
+
}
|
21
|
+
|
22
|
+
response = Epom::Zone.create_zone(url_params, body_params)
|
23
|
+
assert_instance_of Hash, response
|
24
|
+
assert_instance_of Fixnum, response['id']
|
25
|
+
assert response['success']
|
26
|
+
end
|
27
|
+
|
28
|
+
test "update_zone" do
|
29
|
+
timestamp = Time.now.to_i * 1000
|
30
|
+
body_params = {
|
31
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
32
|
+
:timestamp => timestamp,
|
33
|
+
:username => ENV['username'],
|
34
|
+
:name => "zone #{timestamp}",
|
35
|
+
:description => "description",
|
36
|
+
:zoneId => ENV['zone_id'],
|
37
|
+
:siteId => ENV['site_id']
|
38
|
+
}
|
39
|
+
url_params = {
|
40
|
+
}
|
41
|
+
|
42
|
+
response = Epom::Zone.update_zone(url_params, body_params)
|
43
|
+
assert_instance_of Hash, response
|
44
|
+
assert_instance_of Fixnum, response['id']
|
45
|
+
assert response['success']
|
46
|
+
end
|
47
|
+
|
48
|
+
test "get_zone_placement" do
|
49
|
+
timestamp = Time.now.to_i * 1000
|
50
|
+
body_params = {
|
51
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
52
|
+
:timestamp => timestamp,
|
53
|
+
:username => ENV['username'],
|
54
|
+
}
|
55
|
+
url_params = {
|
56
|
+
:zoneId => ENV['zone_id']
|
57
|
+
}
|
58
|
+
|
59
|
+
response = Epom::Zone.get_zone_placement(url_params, body_params)
|
60
|
+
assert_instance_of Array, response
|
61
|
+
if response.count > 0
|
62
|
+
first = response[0]
|
63
|
+
assert_instance_of Fixnum, first['id']
|
64
|
+
assert_instance_of String, first['name']
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/test/epom_test.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class EpomTest < ActiveSupport::TestCase
|
4
|
+
test "truth" do
|
5
|
+
assert_kind_of Module, Epom
|
6
|
+
end
|
7
|
+
|
8
|
+
test "get_targeting" do
|
9
|
+
timestamp = Time.now.to_i * 1000
|
10
|
+
body_params = {
|
11
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
12
|
+
:timestamp => timestamp,
|
13
|
+
:username => ENV['username'],
|
14
|
+
}
|
15
|
+
url_params = {
|
16
|
+
:bannerId => ENV['banner_id'],
|
17
|
+
:targetId => ENV['target_id']
|
18
|
+
}
|
19
|
+
|
20
|
+
response = Epom::Banner.get_targeting(url_params, body_params)
|
21
|
+
assert_instance_of Hash, response
|
22
|
+
end
|
23
|
+
|
24
|
+
test "set_site_pricing" do
|
25
|
+
timestamp = Time.now.to_i * 1000
|
26
|
+
url_params = {
|
27
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
28
|
+
:timestamp => timestamp,
|
29
|
+
:username => ENV['username'],
|
30
|
+
:siteId => ENV['site_id']
|
31
|
+
}
|
32
|
+
body_params = '{"paymentModel":"FIXED_PRICE","pricingType":"CPM","price":4.2}'
|
33
|
+
|
34
|
+
response = Epom::Site.set_site_pricing(url_params, body_params)
|
35
|
+
assert_instance_of Hash, response
|
36
|
+
assert response['success']
|
37
|
+
end
|
38
|
+
end
|
Binary file
|
data/test/test.php
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
<?php
|
2
|
+
define("DEBUG",false);
|
3
|
+
|
4
|
+
$username = "kewelta";
|
5
|
+
$password = "kewelta";
|
6
|
+
$timestamp = round(microtime(true) * 1000);
|
7
|
+
$hash = md5(md5($password).$timestamp);
|
8
|
+
|
9
|
+
$url = "https://n29.epom.com/rest-api/banner/create.do";
|
10
|
+
/*Getting the full path to your file*/
|
11
|
+
$file_name_with_full_path = realpath('300x250.gif');
|
12
|
+
/*Specifying MIME type of the file*/
|
13
|
+
$filetype = "image/gif";
|
14
|
+
|
15
|
+
$post_data = array(
|
16
|
+
"hash" => $hash,
|
17
|
+
"timestamp" => $timestamp,
|
18
|
+
"username" => $username,
|
19
|
+
"placementType" => "SITE_PLACEMENT",
|
20
|
+
"campaignId" => "1261",
|
21
|
+
"active" => "true",
|
22
|
+
"name" => "test_banner_1",
|
23
|
+
"weight" => "1",
|
24
|
+
"bannerType" => "LOCAL_FILE",
|
25
|
+
"imageBannerLink" => "http://qwe.com",
|
26
|
+
"imageFile" => "@$file_name_with_full_path;type=$filetype",
|
27
|
+
"url" => "http://qwe.com",
|
28
|
+
"adUnitId" => "1"
|
29
|
+
);
|
30
|
+
|
31
|
+
$options = array(
|
32
|
+
CURLOPT_URL => $url,
|
33
|
+
CURLOPT_SSL_VERIFYPEER => false,
|
34
|
+
CURLOPT_POST => true,
|
35
|
+
CURLOPT_POSTFIELDS => $post_data,
|
36
|
+
CURLOPT_HTTPHEADER => array("Content-type: multipart/form-data"),
|
37
|
+
CURLOPT_RETURNTRANSFER => true
|
38
|
+
);
|
39
|
+
|
40
|
+
$curl = curl_init();
|
41
|
+
|
42
|
+
curl_setopt_array($curl,$options);
|
43
|
+
|
44
|
+
echo curl_exec($curl);
|
45
|
+
|
46
|
+
if(DEBUG){
|
47
|
+
echo "\n\n";
|
48
|
+
echo $url;
|
49
|
+
print_r($post_data);
|
50
|
+
}
|
51
|
+
?>
|
data/test/test.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
env_file = File.join(Pathname.new(__FILE__).parent.parent, 'config', 'application.yml')
|
5
|
+
YAML.load(File.open(env_file)).each do |key, value|
|
6
|
+
ENV[key.to_s] = value.to_s
|
7
|
+
end if File.exists?(env_file)
|
8
|
+
|
9
|
+
require 'epom'
|
10
|
+
|
11
|
+
timestamp = Time.now.to_i * 1000
|
12
|
+
body_params = {
|
13
|
+
:hash => Epom.create_hash(Epom.create_hash(ENV['password']), timestamp),
|
14
|
+
:timestamp => timestamp,
|
15
|
+
:username => ENV['username'],
|
16
|
+
}
|
17
|
+
url_params = {}
|
18
|
+
|
19
|
+
response = Epom::Site.get_sites(url_params, body_params)
|
20
|
+
|
21
|
+
puts response
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
require "codeclimate-test-reporter"
|
4
|
+
CodeClimate::TestReporter.start
|
5
|
+
|
6
|
+
# Configure Rails Environment
|
7
|
+
ENV["RAILS_ENV"] = "test"
|
8
|
+
|
9
|
+
env_file = File.join(Pathname.new(__FILE__).parent.parent, 'config', 'application.yml')
|
10
|
+
YAML.load(File.open(env_file)).each do |key, value|
|
11
|
+
ENV[key.to_s] = value.to_s
|
12
|
+
end if File.exists?(env_file)
|
13
|
+
|
14
|
+
require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
|
15
|
+
ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
|
16
|
+
require "rails/test_help"
|
17
|
+
|
18
|
+
# Filter out Minitest backtrace while allowing backtrace from other libraries
|
19
|
+
# to be shown.
|
20
|
+
Minitest.backtrace_filter = Minitest::BacktraceFilter.new
|
21
|
+
|
22
|
+
# Load support files
|
23
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
24
|
+
|
25
|
+
# Load fixtures from the engine
|
26
|
+
if ActiveSupport::TestCase.respond_to?(:fixture_path=)
|
27
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
|
28
|
+
end
|
29
|
+
|
30
|
+
def define_get_tests_auto(klass)
|
31
|
+
klass.extended_methods.keys.grep(/^get_/).each do |extended_method|
|
32
|
+
define_method("test_#{extended_method}_auto") do
|
33
|
+
url_parameters_signature = klass.extended_methods[extended_method][:url_parameters]
|
34
|
+
body_parameters_signature = klass.extended_methods[extended_method][:body_parameters]
|
35
|
+
|
36
|
+
url_params = {}
|
37
|
+
if url_parameters_signature
|
38
|
+
url_parameters_signature.each do |url_parameter|
|
39
|
+
url_params[url_parameter] = ENV[url_parameter.to_s.underscore]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
body_params = {}
|
44
|
+
body_parameters_signature.each do |body_parameter|
|
45
|
+
body_params[body_parameter] = ENV[body_parameter.to_s.underscore]
|
46
|
+
end
|
47
|
+
timestamp = Time.now.to_i * 1000
|
48
|
+
body_params[:timestamp] = timestamp
|
49
|
+
body_params[:hash] = Epom.create_hash(Epom.create_hash(ENV['password']), timestamp)
|
50
|
+
|
51
|
+
response = klass.send(extended_method, url_params, body_params)
|
52
|
+
assert_not_instance_of Fixnum, response
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|