banner_lite 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +9 -0
- data/app/controllers/banner_lite/{banners_controller.rb → image_banners_controller.rb} +9 -9
- data/app/controllers/banner_lite/text_banners_controller.rb +53 -0
- data/app/helpers/banner_lite/{banners_helper.rb → image_banners_helper.rb} +3 -3
- data/app/helpers/banner_lite/text_banners_helper.rb +12 -0
- data/app/models/banner_lite/banner.rb +0 -29
- data/app/models/banner_lite/image_banner.rb +32 -0
- data/app/models/banner_lite/text_banner.rb +5 -0
- data/app/views/banner_lite/{banners → image_banners}/_form.html.erb +0 -0
- data/app/views/banner_lite/{banners → image_banners}/edit.html.erb +1 -1
- data/app/views/banner_lite/{banners → image_banners}/index.html.erb +2 -2
- data/app/views/banner_lite/{banners → image_banners}/new.html.erb +1 -1
- data/app/views/banner_lite/image_banners/preview.html.erb +1 -0
- data/app/views/banner_lite/{banners → image_banners}/show.html.erb +2 -2
- data/app/views/banner_lite/text_banners/_form.html.erb +33 -0
- data/app/views/banner_lite/text_banners/edit.html.erb +6 -0
- data/app/views/banner_lite/text_banners/index.html.erb +31 -0
- data/app/views/banner_lite/text_banners/new.html.erb +5 -0
- data/app/views/banner_lite/text_banners/preview.html.erb +1 -0
- data/app/views/banner_lite/text_banners/show.html.erb +24 -0
- data/config/routes.rb +6 -1
- data/db/migrate/20140901033058_add_banner_text_to_banner_lite_banners.rb +13 -0
- data/lib/banner_lite/engine.rb +2 -1
- data/lib/banner_lite/version.rb +1 -1
- data/spec/controllers/banner_lite/image_banners_controller_spec.rb +141 -0
- data/spec/controllers/banner_lite/text_banners_controller_spec.rb +138 -0
- data/spec/factories/image_banners.rb +8 -0
- data/spec/factories/text_banners.rb +8 -0
- data/spec/features/image_banners_spec.rb +18 -0
- data/spec/fixtures/files/dummy.png +0 -0
- data/spec/helpers/banner_lite/image_banners_helper_spec.rb +6 -0
- data/spec/helpers/banner_lite/text_banners_helper_spec.rb +6 -0
- data/spec/models/banner_lite/image_banner_spec.rb +15 -0
- data/spec/models/banner_lite/text_banner_spec.rb +15 -0
- data/spec/spec_helper.rb +50 -0
- data/spec/test_app/README.rdoc +28 -0
- data/spec/test_app/Rakefile +6 -0
- data/spec/test_app/app/assets/javascripts/application.js +13 -0
- data/spec/test_app/app/assets/stylesheets/application.css +15 -0
- data/spec/test_app/app/controllers/application_controller.rb +5 -0
- data/spec/test_app/app/helpers/application_helper.rb +2 -0
- data/spec/test_app/app/views/layouts/application.html.erb +14 -0
- data/spec/test_app/bin/bundle +3 -0
- data/spec/test_app/bin/rails +4 -0
- data/spec/test_app/bin/rake +4 -0
- data/spec/test_app/config/application.rb +29 -0
- data/spec/test_app/config/boot.rb +5 -0
- data/spec/test_app/config/database.yml +25 -0
- data/spec/test_app/config/environment.rb +5 -0
- data/spec/test_app/config/environments/development.rb +29 -0
- data/spec/test_app/config/environments/production.rb +80 -0
- data/spec/test_app/config/environments/test.rb +36 -0
- data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/test_app/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/test_app/config/initializers/inflections.rb +16 -0
- data/spec/test_app/config/initializers/mime_types.rb +5 -0
- data/spec/test_app/config/initializers/session_store.rb +3 -0
- data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
- data/spec/test_app/config/locales/en.yml +23 -0
- data/spec/test_app/config/routes.rb +4 -0
- data/spec/test_app/config/secrets.yml +20 -0
- data/spec/test_app/config.ru +4 -0
- data/spec/test_app/db/development.sqlite3 +0 -0
- data/spec/test_app/db/schema.rb +25 -0
- data/spec/test_app/db/test.sqlite3 +0 -0
- data/spec/test_app/log/development.log +2022 -0
- data/spec/test_app/log/test.log +2944 -0
- data/spec/test_app/public/404.html +67 -0
- data/spec/test_app/public/422.html +67 -0
- data/spec/test_app/public/500.html +66 -0
- data/spec/test_app/public/favicon.ico +0 -0
- data/spec/test_app/spec/fixtures/files/image.png +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/003a38e9fd7ca25c13cedf53bf372ae6 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/03ac7af390932302330c5edf40f1a0c4 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/04407df44edd603d47fc64d43aba1105 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/10a0a05683e0182480089f585e73d994 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/168e239e81a66290e62ea7b88ae0a6f0 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/5c7aaccf5c3cfe31473143cad225e0a3 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/63b2a7b060b4143f09c1f65fa4d05cec +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/6b6316f40abcc8e662f825828fb86a60 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/6e59c9d94357e0bad4932c0d6e08aae4 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/8473b4217b725147b48cc7c35a5613f1 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/9a37adb41b90d5a705ad5ac5b36908a5 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/a282da187ba14975a311bdee34282b68 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/b140558c17c5a6a0b4d0db1aa9eec7d9 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/bd2620ba816de25a2d516af4f4d3d9fa +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/bd7f920a6fb16d903905510c1b54ac58 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/dad42ce6da98af2bb068880ecf0c4e3b +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/f1ea951eed23da8d08839fed76489094 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/f8d343216bb921b4b9f3ff80a279ade1 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/003a38e9fd7ca25c13cedf53bf372ae6 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/03ac7af390932302330c5edf40f1a0c4 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/04407df44edd603d47fc64d43aba1105 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/10a0a05683e0182480089f585e73d994 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/168e239e81a66290e62ea7b88ae0a6f0 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/28d0637a096857502bb280f6159054d5 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/3061646d05a58b102019803c24a45bfb +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/3bf4f025073a083e355b74670ab85dad +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/5c7aaccf5c3cfe31473143cad225e0a3 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/63b2a7b060b4143f09c1f65fa4d05cec +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/6b6316f40abcc8e662f825828fb86a60 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/6e59c9d94357e0bad4932c0d6e08aae4 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/8473b4217b725147b48cc7c35a5613f1 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/9a37adb41b90d5a705ad5ac5b36908a5 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/a282da187ba14975a311bdee34282b68 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/bd7f920a6fb16d903905510c1b54ac58 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/dad42ce6da98af2bb068880ecf0c4e3b +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/e1fd1402695e7f441a0b016d610e5a01 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/f1ea951eed23da8d08839fed76489094 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/f8d343216bb921b4b9f3ff80a279ade1 +0 -0
- metadata +209 -12
- data/app/views/banner_lite/banners/preview.html.erb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1e3a85fef15acb781582d7b034bf9d88c879425
|
4
|
+
data.tar.gz: e4883b046f7482c366ea74cf1f7d8907481a36e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 623b459d9d000dafcd2040557a75e175106f95dca3b70d1c9cd86235bb7a44ff2ce0909b876a4a290771577ba9e44facf929bd85594c2dde74669c6448eda173
|
7
|
+
data.tar.gz: d89b2caa71352bd2667b7443dc7b392bdfc8fc4d9c9aee5f4846df7f1ce5beee213bbefd46e22f6dd3dd2cdf972d810d221b1c740f6a22f4415227c40cf805f8
|
data/Rakefile
CHANGED
@@ -21,3 +21,12 @@ load 'rails/tasks/engine.rake'
|
|
21
21
|
|
22
22
|
Bundler::GemHelper.install_tasks
|
23
23
|
|
24
|
+
Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each {|f| load f }
|
25
|
+
|
26
|
+
require 'rspec/core'
|
27
|
+
require 'rspec/core/rake_task'
|
28
|
+
|
29
|
+
desc "Run all specs in spec directory (excluding plugin specs)"
|
30
|
+
RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
|
31
|
+
|
32
|
+
task :default => :spec
|
@@ -1,28 +1,28 @@
|
|
1
1
|
require_dependency "banner_lite/application_controller"
|
2
2
|
|
3
3
|
module BannerLite
|
4
|
-
class
|
4
|
+
class ImageBannersController < ApplicationController
|
5
5
|
before_action :set_banner, only: [:show, :edit, :update, :destroy]
|
6
6
|
|
7
7
|
def index
|
8
|
-
@banners =
|
8
|
+
@banners = ImageBanner.all
|
9
9
|
end
|
10
10
|
|
11
11
|
def show
|
12
12
|
end
|
13
13
|
|
14
14
|
def new
|
15
|
-
@banner =
|
15
|
+
@banner = ImageBanner.new
|
16
16
|
end
|
17
17
|
|
18
18
|
def edit
|
19
19
|
end
|
20
20
|
|
21
21
|
def create
|
22
|
-
@banner =
|
22
|
+
@banner = ImageBanner.new(banner_params)
|
23
23
|
|
24
24
|
if @banner.save
|
25
|
-
redirect_to @banner, notice: '
|
25
|
+
redirect_to @banner, notice: 'ImageBanner was successfully created.'
|
26
26
|
else
|
27
27
|
render action: 'new'
|
28
28
|
end
|
@@ -30,7 +30,7 @@ module BannerLite
|
|
30
30
|
|
31
31
|
def update
|
32
32
|
if @banner.update(banner_params)
|
33
|
-
redirect_to @banner, notice: '
|
33
|
+
redirect_to @banner, notice: 'ImageBanner was successfully updated.'
|
34
34
|
else
|
35
35
|
render action: 'edit'
|
36
36
|
end
|
@@ -38,16 +38,16 @@ module BannerLite
|
|
38
38
|
|
39
39
|
def destroy
|
40
40
|
@banner.destroy
|
41
|
-
redirect_to
|
41
|
+
redirect_to image_banners_url, notice: 'ImageBanner was successfully destroyed.'
|
42
42
|
end
|
43
43
|
|
44
44
|
private
|
45
45
|
def set_banner
|
46
|
-
@banner =
|
46
|
+
@banner = ImageBanner.find(params[:id])
|
47
47
|
end
|
48
48
|
|
49
49
|
def banner_params
|
50
|
-
params.require(:
|
50
|
+
params.require(:image_banner).permit(:url, :file, :active_from, :active_until)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_dependency "banner_lite/application_controller"
|
2
|
+
|
3
|
+
module BannerLite
|
4
|
+
class TextBannersController < ApplicationController
|
5
|
+
before_action :set_text_banner, only: [:show, :edit, :update, :destroy]
|
6
|
+
|
7
|
+
def index
|
8
|
+
@text_banners = TextBanner.all
|
9
|
+
end
|
10
|
+
|
11
|
+
def show
|
12
|
+
end
|
13
|
+
|
14
|
+
def new
|
15
|
+
@text_banner = TextBanner.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def edit
|
19
|
+
end
|
20
|
+
|
21
|
+
def create
|
22
|
+
@text_banner = TextBanner.new(text_banner_params)
|
23
|
+
|
24
|
+
if @text_banner.save
|
25
|
+
redirect_to @text_banner, notice: 'Text banner was successfully created.'
|
26
|
+
else
|
27
|
+
render :new
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def update
|
32
|
+
if @text_banner.update(text_banner_params)
|
33
|
+
redirect_to @text_banner, notice: 'Text banner was successfully updated.'
|
34
|
+
else
|
35
|
+
render :edit
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def destroy
|
40
|
+
@text_banner.destroy
|
41
|
+
redirect_to text_banners_url, notice: 'Text banner was successfully destroyed.'
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
def set_text_banner
|
46
|
+
@text_banner = TextBanner.find(params[:id])
|
47
|
+
end
|
48
|
+
|
49
|
+
def text_banner_params
|
50
|
+
params.require(:text_banner).permit(:url, :active_from, :active_until, :text)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -1,35 +1,6 @@
|
|
1
1
|
module BannerLite
|
2
2
|
class Banner < ActiveRecord::Base
|
3
|
-
attr_accessor :file
|
4
3
|
validates :url, presence: true
|
5
|
-
validates :file, presence: true, if: ->(b){ b.file_name.blank? }
|
6
|
-
|
7
|
-
before_save :fill_file_name, if: :file
|
8
|
-
after_save :save_file, if: :file
|
9
|
-
after_destroy :remove_file
|
10
|
-
|
11
4
|
scope :active, ->{ now = Time.zone.now; where(arel_table[:active_from].lteq(now).and(arel_table[:active_until].gt(now))) }
|
12
|
-
|
13
|
-
def src
|
14
|
-
"/system/#{id}/#{file_name}"
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
def base_dir
|
19
|
-
@base_dir ||= Rails.root.join('public', 'system', id.to_s)
|
20
|
-
end
|
21
|
-
|
22
|
-
def fill_file_name
|
23
|
-
self.file_name = file.original_filename
|
24
|
-
end
|
25
|
-
|
26
|
-
def remove_file
|
27
|
-
FileUtils.rm_rf(base_dir)
|
28
|
-
end
|
29
|
-
|
30
|
-
def save_file
|
31
|
-
FileUtils.mkdir(base_dir) unless File.directory?(base_dir)
|
32
|
-
File.open(base_dir + file_name, 'wb'){|f| f.write(file.read) }
|
33
|
-
end
|
34
5
|
end
|
35
6
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module BannerLite
|
2
|
+
class ImageBanner < Banner
|
3
|
+
attr_accessor :file
|
4
|
+
validates :file, presence: true, if: ->(b){ b.file_name.blank? }
|
5
|
+
|
6
|
+
before_save :fill_file_name, if: :file
|
7
|
+
after_save :save_file, if: :file
|
8
|
+
after_destroy :remove_file
|
9
|
+
|
10
|
+
def src
|
11
|
+
"/system/#{id}/#{file_name}"
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def base_dir
|
16
|
+
@base_dir ||= Rails.root.join('public', 'system', id.to_s)
|
17
|
+
end
|
18
|
+
|
19
|
+
def fill_file_name
|
20
|
+
self.file_name = file.original_filename
|
21
|
+
end
|
22
|
+
|
23
|
+
def remove_file
|
24
|
+
FileUtils.rm_rf(base_dir)
|
25
|
+
end
|
26
|
+
|
27
|
+
def save_file
|
28
|
+
FileUtils.mkdir(base_dir) unless File.directory?(base_dir)
|
29
|
+
File.open(base_dir + file_name, 'wb'){|f| f.write(file.read) }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
File without changes
|
@@ -19,7 +19,7 @@
|
|
19
19
|
<td><%= banner.active_from %></td>
|
20
20
|
<td><%= banner.active_until %></td>
|
21
21
|
<td><%= link_to 'Show', banner %></td>
|
22
|
-
<td><%= link_to 'Edit',
|
22
|
+
<td><%= link_to 'Edit', edit_image_banner_path(banner) %></td>
|
23
23
|
<td><%= link_to 'Destroy', banner, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
24
24
|
</tr>
|
25
25
|
<% end %>
|
@@ -28,4 +28,4 @@
|
|
28
28
|
|
29
29
|
<br>
|
30
30
|
|
31
|
-
<%= link_to 'New Banner',
|
31
|
+
<%= link_to 'New Banner', new_image_banner_path %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_banners %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<%= form_for(@text_banner) do |f| %>
|
2
|
+
<% if @text_banner.errors.any? %>
|
3
|
+
<div id="error_explanation">
|
4
|
+
<h2><%= pluralize(@text_banner.errors.count, "error") %> prohibited this text_banner from being saved:</h2>
|
5
|
+
|
6
|
+
<ul>
|
7
|
+
<% @text_banner.errors.full_messages.each do |message| %>
|
8
|
+
<li><%= message %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div class="field">
|
15
|
+
<%= f.label :url %><br>
|
16
|
+
<%= f.text_field :url %>
|
17
|
+
</div>
|
18
|
+
<div class="field">
|
19
|
+
<%= f.label :active_from %><br>
|
20
|
+
<%= f.datetime_select :active_from %>
|
21
|
+
</div>
|
22
|
+
<div class="field">
|
23
|
+
<%= f.label :active_until %><br>
|
24
|
+
<%= f.datetime_select :active_until %>
|
25
|
+
</div>
|
26
|
+
<div class="field">
|
27
|
+
<%= f.label :text %><br>
|
28
|
+
<%= f.text_field :text %>
|
29
|
+
</div>
|
30
|
+
<div class="actions">
|
31
|
+
<%= f.submit %>
|
32
|
+
</div>
|
33
|
+
<% end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<h1>Listing text_banners</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th>Url</th>
|
7
|
+
<th>Active from</th>
|
8
|
+
<th>Active until</th>
|
9
|
+
<th>Text</th>
|
10
|
+
<th colspan="3"></th>
|
11
|
+
</tr>
|
12
|
+
</thead>
|
13
|
+
|
14
|
+
<tbody>
|
15
|
+
<% @text_banners.each do |text_banner| %>
|
16
|
+
<tr>
|
17
|
+
<td><%= text_banner.url %></td>
|
18
|
+
<td><%= text_banner.active_from %></td>
|
19
|
+
<td><%= text_banner.active_until %></td>
|
20
|
+
<td><%= text_banner.text %></td>
|
21
|
+
<td><%= link_to 'Show', text_banner %></td>
|
22
|
+
<td><%= link_to 'Edit', edit_text_banner_path(text_banner) %></td>
|
23
|
+
<td><%= link_to 'Destroy', text_banner, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
24
|
+
</tr>
|
25
|
+
<% end %>
|
26
|
+
</tbody>
|
27
|
+
</table>
|
28
|
+
|
29
|
+
<br>
|
30
|
+
|
31
|
+
<%= link_to 'New Text banner', new_text_banner_path %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= text_banners %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
2
|
+
|
3
|
+
<p>
|
4
|
+
<strong>Url:</strong>
|
5
|
+
<%= @text_banner.url %>
|
6
|
+
</p>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<strong>Active from:</strong>
|
10
|
+
<%= @text_banner.active_from %>
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<strong>Active until:</strong>
|
15
|
+
<%= @text_banner.active_until %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
<strong>Banner text:</strong>
|
20
|
+
<%= @text_banner.text %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<%= link_to 'Edit', edit_text_banner_path(@text_banner) %> |
|
24
|
+
<%= link_to 'Back', text_banners_path %>
|
data/config/routes.rb
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
class AddBannerTextToBannerLiteBanners < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
add_column :banner_lite_banners, :text, :string
|
4
|
+
add_column :banner_lite_banners, :type, :string
|
5
|
+
|
6
|
+
::BannerLite::Banner.update_all(type: 'BannerLite::ImageBanner')
|
7
|
+
end
|
8
|
+
|
9
|
+
def down
|
10
|
+
remove_column :banner_lite_banners, :text
|
11
|
+
remove_column :banner_lite_banners, :type
|
12
|
+
end
|
13
|
+
end
|
data/lib/banner_lite/engine.rb
CHANGED
data/lib/banner_lite/version.rb
CHANGED
@@ -0,0 +1,141 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module BannerLite
|
4
|
+
describe ImageBannersController do
|
5
|
+
routes { BannerLite::Engine.routes }
|
6
|
+
|
7
|
+
let(:valid_attributes) { {
|
8
|
+
"url" => "MyString",
|
9
|
+
"file" => Rack::Test::UploadedFile.new(File.expand_path('../../../fixtures/files/dummy.png', __FILE__), 'image/jpeg'),
|
10
|
+
} }
|
11
|
+
let(:valid_session) { {} }
|
12
|
+
|
13
|
+
describe "GET index" do
|
14
|
+
it "assigns all banners as @banners" do
|
15
|
+
banner = ImageBanner.create! valid_attributes
|
16
|
+
get :index, {}, valid_session
|
17
|
+
assigns(:banners).should eq([banner])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "GET show" do
|
22
|
+
it "assigns the requested banner as @banner" do
|
23
|
+
banner = ImageBanner.create! valid_attributes
|
24
|
+
get :show, {:id => banner.to_param}, valid_session
|
25
|
+
assigns(:banner).should eq(banner)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "GET new" do
|
30
|
+
it "assigns a new banner as @banner" do
|
31
|
+
get :new, {}, valid_session
|
32
|
+
assigns(:banner).should be_a_new(ImageBanner)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "GET edit" do
|
37
|
+
it "assigns the requested banner as @banner" do
|
38
|
+
banner = ImageBanner.create! valid_attributes
|
39
|
+
get :edit, {:id => banner.to_param}, valid_session
|
40
|
+
assigns(:banner).should eq(banner)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "POST create" do
|
45
|
+
describe "with valid params" do
|
46
|
+
it "creates a new ImageBanner" do
|
47
|
+
expect {
|
48
|
+
post :create, {:image_banner => valid_attributes}, valid_session
|
49
|
+
}.to change(ImageBanner, :count).by(1)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "assigns a newly created banner as @banner" do
|
53
|
+
post :create, {:image_banner => valid_attributes}, valid_session
|
54
|
+
assigns(:banner).should be_a(ImageBanner)
|
55
|
+
assigns(:banner).should be_persisted
|
56
|
+
end
|
57
|
+
|
58
|
+
it "redirects to the created banner" do
|
59
|
+
post :create, {:image_banner => valid_attributes}, valid_session
|
60
|
+
response.should redirect_to(ImageBanner.last)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "with invalid params" do
|
65
|
+
it "assigns a newly created but unsaved banner as @banner" do
|
66
|
+
# Trigger the behavior that occurs when invalid params are submitted
|
67
|
+
ImageBanner.any_instance.stub(:save).and_return(false)
|
68
|
+
post :create, {:image_banner => { "url" => "invalid value" }}, valid_session
|
69
|
+
assigns(:banner).should be_a_new(ImageBanner)
|
70
|
+
end
|
71
|
+
|
72
|
+
it "re-renders the 'new' template" do
|
73
|
+
# Trigger the behavior that occurs when invalid params are submitted
|
74
|
+
ImageBanner.any_instance.stub(:save).and_return(false)
|
75
|
+
post :create, {:image_banner => { "url" => "invalid value" }}, valid_session
|
76
|
+
response.should render_template("new")
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "PUT update" do
|
82
|
+
describe "with valid params" do
|
83
|
+
it "updates the requested banner" do
|
84
|
+
banner = ImageBanner.create! valid_attributes
|
85
|
+
# Assuming there are no other banners in the database, this
|
86
|
+
# specifies that the ImageBanner created on the previous line
|
87
|
+
# receives the :update_attributes message with whatever params are
|
88
|
+
# submitted in the request.
|
89
|
+
ImageBanner.any_instance.should_receive(:update).with({ "url" => "MyString" })
|
90
|
+
put :update, {:id => banner.to_param, :image_banner => { "url" => "MyString" }}, valid_session
|
91
|
+
end
|
92
|
+
|
93
|
+
it "assigns the requested banner as @banner" do
|
94
|
+
banner = ImageBanner.create! valid_attributes
|
95
|
+
put :update, {:id => banner.to_param, :image_banner => valid_attributes}, valid_session
|
96
|
+
assigns(:banner).should eq(banner)
|
97
|
+
end
|
98
|
+
|
99
|
+
it "redirects to the banner" do
|
100
|
+
banner = ImageBanner.create! valid_attributes
|
101
|
+
put :update, {:id => banner.to_param, :image_banner => valid_attributes}, valid_session
|
102
|
+
response.should redirect_to(banner)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "with invalid params" do
|
107
|
+
it "assigns the banner as @banner" do
|
108
|
+
banner = ImageBanner.create! valid_attributes
|
109
|
+
# Trigger the behavior that occurs when invalid params are submitted
|
110
|
+
ImageBanner.any_instance.stub(:save).and_return(false)
|
111
|
+
put :update, {:id => banner.to_param, :image_banner => { "url" => "invalid value" }}, valid_session
|
112
|
+
assigns(:banner).should eq(banner)
|
113
|
+
end
|
114
|
+
|
115
|
+
it "re-renders the 'edit' template" do
|
116
|
+
banner = ImageBanner.create! valid_attributes
|
117
|
+
# Trigger the behavior that occurs when invalid params are submitted
|
118
|
+
ImageBanner.any_instance.stub(:save).and_return(false)
|
119
|
+
put :update, {:id => banner.to_param, :image_banner => { "url" => "invalid value" }}, valid_session
|
120
|
+
response.should render_template("edit")
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe "DELETE destroy" do
|
126
|
+
it "destroys the requested banner" do
|
127
|
+
banner = ImageBanner.create! valid_attributes
|
128
|
+
expect {
|
129
|
+
delete :destroy, {:id => banner.to_param}, valid_session
|
130
|
+
}.to change(ImageBanner, :count).by(-1)
|
131
|
+
end
|
132
|
+
|
133
|
+
it "redirects to the banners list" do
|
134
|
+
banner = ImageBanner.create! valid_attributes
|
135
|
+
delete :destroy, {:id => banner.to_param}, valid_session
|
136
|
+
response.should redirect_to(image_banners_url)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
end
|
141
|
+
end
|