advert_selector 1.0.3 → 1.0.4
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/app/helpers/advert_selector/application_helper.rb +1 -1
- data/app/models/advert_selector/banner.rb +6 -7
- data/lib/advert_selector/version.rb +1 -1
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +64 -0
- data/test/dummy/log/test.log +17342 -0
- data/test/dummy/tmp/cache/943/570/advert_selector_errors +0 -0
- data/test/dummy/tmp/cache/A2C/760/AdvertSelectorBanner_207249520 +0 -0
- data/test/dummy/tmp/cache/A3E/CF0/AdvertSelectorBanner_394627963 +0 -0
- data/test/dummy/tmp/cache/A3F/BF0/AdvertSelectorBanner_814558298 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/040/sprockets%2F644677c3bb57b6ed6b675229cfe54305 +0 -0
- data/test/dummy/tmp/cache/assets/CF7/B60/sprockets%2F2c2a2af94201088a2a815ba90b8d344c +0 -0
- data/test/integration/banner_shows_test.rb +5 -2
- data/test/test_helper.rb +2 -0
- data/test/unit/advert_selector/banner_test.rb +78 -14
- metadata +4 -4
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -5,11 +5,14 @@ class BannerShowsTest < ActionDispatch::IntegrationTest
|
|
5
5
|
fixtures :all
|
6
6
|
|
7
7
|
setup do
|
8
|
+
@coke.reload
|
8
9
|
@coke.fast_mode = true
|
9
10
|
@coke.save!
|
10
11
|
assert @coke.show_now_basics?, "fixtures problem"
|
12
|
+
@pepsi.reload
|
11
13
|
@pepsi.update_attribute(:confirmed, false)
|
12
|
-
assert !@pepsi.show_now_basics
|
14
|
+
assert !@pepsi.show_now_basics?, "fixtures prolbem 2"
|
15
|
+
AdvertSelector.admin_access_class = AdvertSelector::AdminAccessClassAlwaysTrue
|
13
16
|
end
|
14
17
|
|
15
18
|
def response_includes_banner?(banner)
|
@@ -19,7 +22,7 @@ class BannerShowsTest < ActionDispatch::IntegrationTest
|
|
19
22
|
assert response_includes_banner?(banner), "should have default banner content in response"
|
20
23
|
end
|
21
24
|
|
22
|
-
test "normal request and banner loading
|
25
|
+
test "normal request and banner loading" do
|
23
26
|
AdvertSelector::Banner.expects(:find_current).twice.returns(AdvertSelector::Banner.find_future)
|
24
27
|
|
25
28
|
get '/'
|
data/test/test_helper.rb
CHANGED
@@ -29,10 +29,12 @@ class ActiveSupport::TestCase
|
|
29
29
|
@pepsi = advert_selector_banners(:pepsi)
|
30
30
|
@parade_banner = advert_selector_banners(:parade_banner)
|
31
31
|
|
32
|
+
Timecop.return
|
32
33
|
Timecop.travel( Time.now.at_midnight + 12.hours ) unless [6..20].include?(Time.now.hour)
|
33
34
|
end
|
34
35
|
|
35
36
|
teardown do
|
37
|
+
Timecop.return
|
36
38
|
$advert_selector_avoid_cache = false
|
37
39
|
@coke.reset_cache
|
38
40
|
@pepsi.reset_cache
|
@@ -45,6 +45,7 @@ module AdvertSelector
|
|
45
45
|
coke_third = Banner.find(@coke)
|
46
46
|
assert_equal 551, coke_third[:running_view_count], "should have saved value to db after so many views"
|
47
47
|
end
|
48
|
+
|
48
49
|
test "running_viewcount & add_one_viewcount reaching target" do
|
49
50
|
$advert_selector_avoid_cache = false
|
50
51
|
@coke.reset_cache
|
@@ -61,16 +62,79 @@ module AdvertSelector
|
|
61
62
|
assert_equal 10, coke_second[:running_view_count], "should save if reaching target"
|
62
63
|
end
|
63
64
|
|
64
|
-
test "
|
65
|
-
|
66
|
-
|
65
|
+
test "view_count per_hour" do
|
66
|
+
|
67
|
+
start_time = Time.now.at_beginning_of_day
|
68
|
+
|
69
|
+
# 10 views per hour
|
70
|
+
@coke.update_attributes!(:start_time => start_time, :end_time => start_time + 112.hours,
|
71
|
+
:target_view_count => 1000, :fast_mode => false)
|
67
72
|
@coke.running_view_count = 0
|
68
73
|
@coke.save!
|
69
74
|
|
75
|
+
Timecop.travel( start_time + 4.5.hours )
|
76
|
+
assert @coke.show_today_has_viewcounts?
|
77
|
+
|
78
|
+
@coke.reload
|
79
|
+
@coke.running_view_count = 39
|
80
|
+
assert @coke.show_today_has_viewcounts?
|
81
|
+
|
82
|
+
@coke.reload
|
83
|
+
@coke.running_view_count = 49
|
84
|
+
assert @coke.show_today_has_viewcounts?
|
85
|
+
|
86
|
+
@coke.reload
|
87
|
+
@coke.running_view_count = 51
|
88
|
+
assert !@coke.show_today_has_viewcounts?
|
89
|
+
|
90
|
+
Timecop.travel( start_time + 90.hours )
|
91
|
+
@coke.reload
|
92
|
+
@coke.running_view_count = 990
|
93
|
+
assert @coke.show_today_has_viewcounts?, "should let last 24h to display everything straight away"
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
test "view_count basics compare_value and per_fast_mode" do
|
98
|
+
start_time = Time.now.at_beginning_of_day
|
99
|
+
|
100
|
+
# 10 views per hour
|
101
|
+
@coke.update_attributes!(:start_time => start_time, :end_time => start_time + 112.hours,
|
102
|
+
:target_view_count => 1000, :fast_mode => false)
|
103
|
+
@coke.running_view_count = 0
|
104
|
+
@coke.save!
|
105
|
+
|
106
|
+
Timecop.travel( start_time + 4.5.hours )
|
107
|
+
|
108
|
+
assert @coke.show_today_has_viewcounts?
|
109
|
+
@coke.reload
|
110
|
+
assert !@coke.show_today_has_viewcounts?(900), "use given value in has_viewcounts"
|
111
|
+
|
112
|
+
@coke.reload
|
113
|
+
@coke.fast_mode = true
|
114
|
+
assert @coke.show_today_has_viewcounts?(900), "true always with fast_mode on"
|
115
|
+
|
116
|
+
@coke.reload
|
117
|
+
@coke.fast_mode = true
|
118
|
+
assert !@coke.show_today_has_viewcounts?(1010), "should be false if viewcount has been achieved even though in fast mode"
|
119
|
+
|
120
|
+
@coke.reload
|
121
|
+
@coke.target_view_count = nil
|
122
|
+
assert @coke.show_today_has_viewcounts?(2000), "should be true if no target viewcount"
|
123
|
+
end
|
124
|
+
|
125
|
+
test "view_count daily tests" do
|
126
|
+
start_time = Time.now.at_beginning_of_day
|
127
|
+
@coke.update_attributes!(:start_time => start_time, :end_time => 10.days.from_now.at_beginning_of_day,
|
128
|
+
:target_view_count => 1000, :fast_mode => false)
|
129
|
+
@coke.running_view_count = 0
|
130
|
+
@coke.save!
|
131
|
+
|
132
|
+
Timecop.travel( start_time + 11.hours )
|
133
|
+
|
70
134
|
assert @coke.show_today_has_viewcounts?
|
71
135
|
|
72
136
|
@coke.reload
|
73
|
-
@coke.running_view_count =
|
137
|
+
@coke.running_view_count = 130
|
74
138
|
assert !@coke.show_today_has_viewcounts?, "daily limit should be full"
|
75
139
|
|
76
140
|
@coke.fast_mode = true
|
@@ -80,32 +144,32 @@ module AdvertSelector
|
|
80
144
|
|
81
145
|
Timecop.travel( 5.days.from_now.at_midnight + 12.hours ) do
|
82
146
|
@coke.reload
|
83
|
-
@coke.running_view_count =
|
147
|
+
@coke.running_view_count = 300
|
84
148
|
assert @coke.show_today_has_viewcounts?
|
85
|
-
assert @coke.show_today_has_viewcounts?(
|
86
|
-
assert !@coke.show_today_has_viewcounts?(
|
149
|
+
assert @coke.show_today_has_viewcounts?(300)
|
150
|
+
assert !@coke.show_today_has_viewcounts?(600), "should compare with given value"
|
87
151
|
|
88
152
|
@coke.reload
|
89
|
-
@coke.running_view_count =
|
153
|
+
@coke.running_view_count = 600
|
90
154
|
assert !@coke.show_today_has_viewcounts?
|
91
155
|
end
|
92
156
|
|
93
157
|
Timecop.travel( 9.days.from_now.at_midnight + 12.hours ) do
|
94
158
|
@coke.reload
|
95
|
-
assert @coke.show_today_has_viewcounts?(
|
159
|
+
assert @coke.show_today_has_viewcounts?(990), "last day should always be true"
|
96
160
|
end
|
97
161
|
|
98
162
|
@coke.reload
|
99
|
-
assert !@coke.show_today_has_viewcounts?(
|
163
|
+
assert !@coke.show_today_has_viewcounts?(1010), "should be false if viewcount has been achieved"
|
100
164
|
|
101
165
|
@coke.reload
|
102
166
|
@coke.target_view_count = nil
|
103
|
-
assert @coke.show_today_has_viewcounts?(
|
167
|
+
assert @coke.show_today_has_viewcounts?(1000), "should be true if no target viewcount"
|
104
168
|
|
105
|
-
Timecop.travel(
|
169
|
+
Timecop.travel( start_time + 19.hours ) do
|
106
170
|
@coke.reload
|
107
|
-
@coke.update_attributes!(:start_time =>
|
108
|
-
:target_view_count =>
|
171
|
+
@coke.update_attributes!(:start_time => start_time + 18.hours, :end_time => 10.days.from_now.at_beginning_of_day,
|
172
|
+
:target_view_count => 1000)
|
109
173
|
@coke.running_view_count = 0
|
110
174
|
assert @coke.show_today_has_viewcounts?(), "should be true for the first day even if start is later in the evening"
|
111
175
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: advert_selector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 4
|
10
|
+
version: 1.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Olli Huotari
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-12-02 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rails
|