comfortable_mexican_sofa 1.12.4 → 1.12.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -3
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/arrow_bottom.gif +0 -0
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/arrow_right.gif +0 -0
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/checkerboard.gif +0 -0
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_draft.gif +0 -0
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_file.gif +0 -0
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_layout.gif +0 -0
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_move.gif +0 -0
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_page.gif +0 -0
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_site.gif +0 -0
- data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_snippet.gif +0 -0
- data/app/assets/javascripts/comfy/admin/cms/application.js.coffee +24 -0
- data/app/assets/javascripts/{comfortable_mexican_sofa/application.js.coffee → comfy/admin/cms/base.js.coffee} +20 -32
- data/app/assets/javascripts/comfy/admin/cms/custom.js.coffee +1 -0
- data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin}/cms/files.js.coffee +0 -0
- data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin/cms}/lib/bootstrap-datetimepicker.js +0 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/diff.js.coffee +9 -0
- data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin/cms}/lib/diff/diff_match_patch.min.js +0 -0
- data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin/cms}/lib/diff/pretty_text_diff.min.js +0 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor.js +8221 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/filemanager.js +64 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/cs.js +86 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/da.js +74 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/de.js +79 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/es.js +74 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/fr.js +74 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/it.js +77 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/ja.js +75 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/nb.js +74 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/nl.js +79 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/pl.js +75 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/pt_BR.js +74 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/ru.js +75 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/sv.js +76 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/zh_CN.js +75 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/zh_TW.js +75 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/imagemanager.js +57 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/table.js +337 -0
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor/video.js +77 -0
- data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin}/cms/uploader.js.coffee +0 -2
- data/app/assets/stylesheets/comfy/admin/cms/application.sass +11 -0
- data/app/assets/stylesheets/{comfortable_mexican_sofa → comfy/admin/cms}/base.sass +15 -13
- data/app/assets/stylesheets/{comfortable_mexican_sofa → comfy/admin/cms}/bootstrap_overrides.sass +0 -0
- data/app/assets/stylesheets/{comfortable_mexican_sofa → comfy/admin/cms}/codemirror_overrides.sass +0 -0
- data/app/assets/stylesheets/comfy/admin/cms/custom.sass +1 -0
- data/app/assets/stylesheets/{comfortable_mexican_sofa → comfy/admin/cms}/lib/bootstrap-datetimepicker.css +0 -0
- data/app/assets/stylesheets/comfy/admin/cms/lib/redactor.css +921 -0
- data/app/assets/stylesheets/comfy/admin/cms/redactor_overrides.sass +20 -0
- data/app/controllers/comfy/admin/cms/base_controller.rb +3 -2
- data/app/controllers/comfy/admin/cms/files_controller.rb +52 -24
- data/app/helpers/comfy/cms_helper.rb +1 -0
- data/app/models/comfy/cms/file.rb +1 -1
- data/app/views/comfy/admin/cms/files/_page_form.html.haml +1 -1
- data/app/views/comfy/admin/cms/files/index.html.haml +1 -1
- data/app/views/layouts/comfy/admin/cms/_head.html.haml +11 -8
- data/comfortable_mexican_sofa.gemspec +0 -1
- data/lib/comfortable_mexican_sofa/engine.rb +0 -1
- data/lib/comfortable_mexican_sofa/version.rb +1 -1
- data/lib/generators/comfy/cms/assets_generator.rb +3 -3
- data/lib/generators/comfy/cms/cms_generator.rb +4 -11
- data/test/controllers/comfy/admin/cms/files_controller_test.rb +83 -31
- data/test/gemfiles/Gemfile.rails.4.0 +0 -1
- data/test/gemfiles/Gemfile.rails.4.1 +0 -1
- data/test/gemfiles/Gemfile.rails.4.2 +0 -1
- data/test/gemfiles/Gemfile.rails.master +0 -1
- data/test/generators/cms_assets_generator_test.rb +3 -3
- data/test/generators/cms_generator_test.rb +2 -6
- data/test/integration/js_variables_test.rb +20 -0
- metadata +50 -41
- data/app/assets/javascripts/comfortable_mexican_sofa/admin/application.js +0 -1
- data/app/assets/javascripts/comfortable_mexican_sofa/lib/diff.js.coffee +0 -9
- data/app/assets/stylesheets/comfortable_mexican_sofa/admin/application.css +0 -1
- data/app/assets/stylesheets/comfortable_mexican_sofa/application.sass +0 -8
- data/config/initializers/plupload.rb +0 -9
@@ -0,0 +1,20 @@
|
|
1
|
+
.redactor-box
|
2
|
+
margin-bottom: 0px
|
3
|
+
|
4
|
+
#redactor-modal
|
5
|
+
header.ui-draggable-handle
|
6
|
+
padding: 20px
|
7
|
+
|
8
|
+
#redactor-modal-body
|
9
|
+
section
|
10
|
+
padding: 0 20px 20px 20px
|
11
|
+
|
12
|
+
#redactor-droparea-placeholder
|
13
|
+
input[type=file]
|
14
|
+
display: inline
|
15
|
+
#redactor-image-manager-box
|
16
|
+
img
|
17
|
+
border: 1px solid #ddd
|
18
|
+
margin: 0 5px 5px 0
|
19
|
+
img:hover
|
20
|
+
border-color: #fff
|
@@ -46,8 +46,9 @@ protected
|
|
46
46
|
|
47
47
|
def load_fixtures
|
48
48
|
return unless ComfortableMexicanSofa.config.enable_fixtures
|
49
|
-
|
50
|
-
|
49
|
+
|
50
|
+
controllers = %w(layouts pages snippets files).collect{|c| 'comfy/admin/cms/' + c}
|
51
|
+
if controllers.member?(params[:controller]) && params[:action] == 'index'
|
51
52
|
ComfortableMexicanSofa::Fixture::Importer.new(@site.identifier).import!
|
52
53
|
flash.now[:danger] = I18n.t('comfy.admin.cms.base.fixtures_enabled')
|
53
54
|
end
|
@@ -1,17 +1,38 @@
|
|
1
1
|
class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
2
2
|
|
3
|
-
|
3
|
+
include ActionView::Helpers::NumberHelper
|
4
4
|
|
5
5
|
before_action :build_file, :only => [:new, :create]
|
6
6
|
before_action :load_file, :only => [:edit, :update, :destroy]
|
7
7
|
before_action :authorize
|
8
8
|
|
9
9
|
def index
|
10
|
-
|
11
|
-
|
12
|
-
.
|
13
|
-
|
14
|
-
|
10
|
+
case params[:source]
|
11
|
+
when 'redactor'
|
12
|
+
file_scope = @site.files.limit(100).order('created_at DESC')
|
13
|
+
file_hashes = case params[:type]
|
14
|
+
when 'image'
|
15
|
+
file_scope.images.collect do |image|
|
16
|
+
{ :thumb => image.file.url(:cms_thumb),
|
17
|
+
:image => image.file.url,
|
18
|
+
:title => image.label }
|
19
|
+
end
|
20
|
+
else
|
21
|
+
file_scope.collect do |file|
|
22
|
+
{ :title => file.label,
|
23
|
+
:name => file.file_file_name,
|
24
|
+
:link => file.file.url,
|
25
|
+
:size => number_to_human_size(file.file_file_size) }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
render :json => file_hashes
|
29
|
+
else
|
30
|
+
files_scope = @site.files.not_page_file
|
31
|
+
.includes(:categories)
|
32
|
+
.for_category(params[:category])
|
33
|
+
.order('comfy_cms_files.position')
|
34
|
+
@files = comfy_paginate(files_scope, 50)
|
35
|
+
end
|
15
36
|
end
|
16
37
|
|
17
38
|
def new
|
@@ -19,24 +40,27 @@ class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
|
19
40
|
end
|
20
41
|
|
21
42
|
def create
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
43
|
+
@file.save!
|
44
|
+
|
45
|
+
case params[:source]
|
46
|
+
when 'plupload'
|
47
|
+
render :text => render_to_string(:partial => 'file', :object => @file)
|
48
|
+
when 'redactor'
|
49
|
+
render :json => {:filelink => @file.file.url, :filename => @file.label}
|
50
|
+
else
|
51
|
+
flash[:success] = I18n.t('comfy.admin.cms.files.created')
|
52
|
+
redirect_to :action => :edit, :id => @file
|
53
|
+
end
|
54
|
+
|
55
|
+
rescue ActiveRecord::RecordInvalid
|
56
|
+
case params[:source]
|
57
|
+
when 'plupload'
|
58
|
+
render :text => @file.errors.full_messages.to_sentence, :status => :unprocessable_entity
|
59
|
+
when 'redactor'
|
60
|
+
render :nothing => true, :status => :unprocessable_entity
|
61
|
+
else
|
62
|
+
flash.now[:danger] = I18n.t('comfy.admin.cms.files.creation_failure')
|
63
|
+
render :action => :new
|
40
64
|
end
|
41
65
|
end
|
42
66
|
|
@@ -84,6 +108,10 @@ protected
|
|
84
108
|
end
|
85
109
|
|
86
110
|
def file_params
|
111
|
+
unless (file = params[:file]).is_a?(Hash)
|
112
|
+
params[:file] = { }
|
113
|
+
params[:file][:file] = file
|
114
|
+
end
|
87
115
|
params.fetch(:file, {}).permit!
|
88
116
|
end
|
89
117
|
end
|
@@ -12,7 +12,7 @@ class Comfy::Cms::File < ActiveRecord::Base
|
|
12
12
|
:styles => lambda { |f|
|
13
13
|
if f.respond_to?(:instance) && f.instance.respond_to?(:dimensions)
|
14
14
|
(f.instance.dimensions.blank?? { } : { :original => f.instance.dimensions }).merge(
|
15
|
-
:cms_thumb => '
|
15
|
+
:cms_thumb => '100x75#'
|
16
16
|
).merge(ComfortableMexicanSofa.config.upload_file_options[:styles] || {})
|
17
17
|
end
|
18
18
|
}
|
@@ -5,5 +5,5 @@
|
|
5
5
|
- files.each do |file|
|
6
6
|
.file{:class => dom_id(file)}
|
7
7
|
= link_to file.file_file_name, file.file.url, :target => '_blank'
|
8
|
-
= link_to comfy_admin_cms_site_file_path(@site, file), :method => :delete, :remote => true, :confirm => t('.are_you_sure'), :class => 'delete' do
|
8
|
+
= link_to comfy_admin_cms_site_file_path(@site, file), :method => :delete, :remote => true, :data => {:confirm => t('.are_you_sure')}, :class => 'delete' do
|
9
9
|
%i.glyphicon.glyphicon-remove-circle
|
@@ -24,7 +24,7 @@
|
|
24
24
|
:javascript
|
25
25
|
$(function(){
|
26
26
|
window.CMS.uploader($("#cms-uploader"), {
|
27
|
-
url: '#{comfy_admin_cms_site_files_path(@site)}',
|
27
|
+
url: '#{comfy_admin_cms_site_files_path(@site, :source => :plupload)}',
|
28
28
|
multipart_params: {
|
29
29
|
'#{request_forgery_protection_token}': '#{form_authenticity_token}',
|
30
30
|
'#{Rails.application.config.session_options[:key]}': '#{request.session_options[:id]}'
|
@@ -1,13 +1,16 @@
|
|
1
1
|
%head
|
2
|
-
%meta{'http-equiv' =>
|
2
|
+
%meta{'http-equiv' => 'Content-type', :content => 'text/html; charset=utf-8'}
|
3
3
|
%title= ComfortableMexicanSofa.config.cms_title
|
4
4
|
= csrf_meta_tag
|
5
|
-
|
6
|
-
= stylesheet_link_tag
|
7
|
-
=
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
|
6
|
+
= stylesheet_link_tag 'comfy/admin/cms/application', 'data-turbolinks-track' => true
|
7
|
+
= javascript_include_tag 'comfy/admin/cms/application', 'data-turbolinks-track' => true
|
8
|
+
|
9
|
+
- if @site && @site.persisted?
|
10
|
+
:javascript
|
11
|
+
CMS.file_upload_path = '#{comfy_admin_cms_site_files_path(@site)}';
|
12
|
+
CMS.locale = '#{I18n.locale}';
|
13
|
+
|
11
14
|
= yield :head
|
12
|
-
|
15
|
+
|
13
16
|
= render 'comfy/admin/cms/partials/html_head'
|
@@ -31,7 +31,6 @@ Gem::Specification.new do |s|
|
|
31
31
|
s.add_dependency 'sass-rails', '>= 4.0.3'
|
32
32
|
s.add_dependency 'coffee-rails', '>= 3.1.0'
|
33
33
|
s.add_dependency 'codemirror-rails', '>= 3.0.0'
|
34
|
-
s.add_dependency 'tinymce-rails', '>= 4.0.0'
|
35
34
|
s.add_dependency 'bootstrap-sass', '>= 3.2.0'
|
36
35
|
s.add_dependency 'plupload-rails', '>= 1.2.1'
|
37
36
|
end
|
@@ -5,9 +5,9 @@ module Comfy
|
|
5
5
|
source_root File.expand_path(File.join(File.dirname(__FILE__), '../../../../app/assets'))
|
6
6
|
|
7
7
|
def generate_assets
|
8
|
-
directory 'images/
|
9
|
-
directory 'javascripts/
|
10
|
-
directory 'stylesheets/
|
8
|
+
directory 'images/comfy/admin/cms', 'app/assets/images/comfy/admin/cms'
|
9
|
+
directory 'javascripts/comfy/admin/cms', 'app/assets/javascripts/comfy/admin/cms'
|
10
|
+
directory 'stylesheets/comfy/admin/cms', 'app/assets/stylesheets/comfy/admin/cms'
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -26,13 +26,6 @@ module Comfy
|
|
26
26
|
'config/initializers/comfortable_mexican_sofa.rb'
|
27
27
|
end
|
28
28
|
|
29
|
-
def generate_mime_types
|
30
|
-
create_file 'config/initializers/mime_types.rb'
|
31
|
-
append_to_file 'config/initializers/mime_types.rb' do
|
32
|
-
"Mime::Type.register 'text/plupload', :plupload unless Mime::Type.lookup_by_extension(:plupload)"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
29
|
def generate_routing
|
37
30
|
route_string = " comfy_route :cms_admin, :path => '/admin'\n\n"
|
38
31
|
route_string << " # Make sure this routeset is defined last\n"
|
@@ -45,10 +38,10 @@ module Comfy
|
|
45
38
|
end
|
46
39
|
|
47
40
|
def generate_assets
|
48
|
-
|
49
|
-
'app/assets/javascripts/
|
50
|
-
|
51
|
-
'app/assets/stylesheets/
|
41
|
+
copy_file 'app/assets/javascripts/comfy/admin/cms/custom.js.coffee',
|
42
|
+
'app/assets/javascripts/comfy/admin/cms/custom.js.coffee'
|
43
|
+
copy_file 'app/assets/stylesheets/comfy/admin/cms/custom.sass',
|
44
|
+
'app/assets/stylesheets/comfy/admin/cms/custom.sass'
|
52
45
|
end
|
53
46
|
|
54
47
|
def show_readme
|
@@ -2,15 +2,20 @@ require_relative '../../../../test_helper'
|
|
2
2
|
|
3
3
|
class Comfy::Admin::Cms::FilesControllerTest < ActionController::TestCase
|
4
4
|
|
5
|
+
def setup
|
6
|
+
@site = comfy_cms_sites(:default)
|
7
|
+
@file = comfy_cms_files(:default)
|
8
|
+
end
|
9
|
+
|
5
10
|
def test_get_index
|
6
|
-
get :index, :site_id =>
|
11
|
+
get :index, :site_id => @site
|
7
12
|
assert_response :success
|
8
13
|
assert assigns(:files)
|
9
14
|
assert_template :index
|
10
15
|
end
|
11
16
|
|
12
17
|
def test_get_index_with_category
|
13
|
-
get :index, :site_id =>
|
18
|
+
get :index, :site_id => @site, :category => comfy_cms_categories(:default).label
|
14
19
|
assert_response :success
|
15
20
|
assert assigns(:files)
|
16
21
|
assert_equal 1, assigns(:files).count
|
@@ -18,7 +23,7 @@ class Comfy::Admin::Cms::FilesControllerTest < ActionController::TestCase
|
|
18
23
|
end
|
19
24
|
|
20
25
|
def test_get_index_with_category_invalid
|
21
|
-
get :index, :site_id =>
|
26
|
+
get :index, :site_id => @site, :category => 'invalid'
|
22
27
|
assert_response :success
|
23
28
|
assert assigns(:files)
|
24
29
|
assert_equal 0, assigns(:files).count
|
@@ -27,31 +32,56 @@ class Comfy::Admin::Cms::FilesControllerTest < ActionController::TestCase
|
|
27
32
|
def test_get_index_with_page_files
|
28
33
|
file = comfy_cms_files(:default)
|
29
34
|
file.update_column(:block_id, comfy_cms_blocks(:default_field_text).id)
|
30
|
-
get :index, :site_id =>
|
35
|
+
get :index, :site_id => @site
|
31
36
|
assert_response :success
|
32
37
|
assert_equal 0, assigns(:files).count
|
33
38
|
end
|
34
39
|
|
40
|
+
def test_get_index_with_redactor_images
|
41
|
+
file = comfy_cms_files(:default)
|
42
|
+
|
43
|
+
get :index, :site_id => @site, :source => 'redactor', :type => 'image'
|
44
|
+
assert_response :success
|
45
|
+
|
46
|
+
assert_equal [{
|
47
|
+
'thumb' => file.file.url(:cms_thumb),
|
48
|
+
'image' => file.file.url,
|
49
|
+
'title' => file.label
|
50
|
+
}], JSON.parse(response.body)
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_get_index_with_redactor_files
|
54
|
+
file = comfy_cms_files(:default)
|
55
|
+
|
56
|
+
get :index, :site_id => @site, :source => 'redactor', :type => 'file'
|
57
|
+
assert_response :success
|
58
|
+
|
59
|
+
assert_equal [{
|
60
|
+
'title' => file.label,
|
61
|
+
'name' => file.file_file_name,
|
62
|
+
'link' => file.file.url,
|
63
|
+
'size' => '19.6 KB'
|
64
|
+
}], JSON.parse(response.body)
|
65
|
+
end
|
66
|
+
|
35
67
|
def test_get_new
|
36
|
-
|
37
|
-
get :new, :site_id => site
|
68
|
+
get :new, :site_id => @site
|
38
69
|
assert_response :success
|
39
70
|
assert assigns(:file)
|
40
71
|
assert_template :new
|
41
|
-
assert_select "form[action='/admin/sites/#{site.id}/files'][enctype='multipart/form-data']"
|
72
|
+
assert_select "form[action='/admin/sites/#{@site.id}/files'][enctype='multipart/form-data']"
|
42
73
|
end
|
43
74
|
|
44
75
|
def test_get_edit
|
45
|
-
|
46
|
-
get :edit, :site_id => file.site, :id => file
|
76
|
+
get :edit, :site_id => @site, :id => @file
|
47
77
|
assert_response :success
|
48
78
|
assert assigns(:file)
|
49
79
|
assert_template :edit
|
50
|
-
assert_select "form[action='/admin/sites/#{
|
80
|
+
assert_select "form[action='/admin/sites/#{@site.id}/files/#{@file.id}']"
|
51
81
|
end
|
52
82
|
|
53
83
|
def test_get_edit_failure
|
54
|
-
get :edit, :site_id =>
|
84
|
+
get :edit, :site_id => @site, :id => 'not_found'
|
55
85
|
assert_response :redirect
|
56
86
|
assert_redirected_to :action => :index
|
57
87
|
assert_equal 'File not found', flash[:danger]
|
@@ -59,7 +89,7 @@ class Comfy::Admin::Cms::FilesControllerTest < ActionController::TestCase
|
|
59
89
|
|
60
90
|
def test_create
|
61
91
|
assert_difference ['Comfy::Cms::File.count', 'Comfy::Cms::Categorization.count'] do
|
62
|
-
post :create, :site_id =>
|
92
|
+
post :create, :site_id => @site, :file => {
|
63
93
|
:label => 'Test File',
|
64
94
|
:description => 'Test Description',
|
65
95
|
:file => fixture_file_upload('files/image.jpg', 'image/jpeg'),
|
@@ -77,7 +107,7 @@ class Comfy::Admin::Cms::FilesControllerTest < ActionController::TestCase
|
|
77
107
|
|
78
108
|
def test_create_failure
|
79
109
|
assert_no_difference 'Comfy::Cms::File.count' do
|
80
|
-
post :create, :site_id =>
|
110
|
+
post :create, :site_id => @site, :file => { }
|
81
111
|
assert_response :success
|
82
112
|
assert_template :new
|
83
113
|
assert_equal 'Failed to upload files', flash[:danger]
|
@@ -87,8 +117,8 @@ class Comfy::Admin::Cms::FilesControllerTest < ActionController::TestCase
|
|
87
117
|
def test_create_as_plupload
|
88
118
|
assert_difference 'Comfy::Cms::File.count' do
|
89
119
|
post :create,
|
90
|
-
:
|
91
|
-
:site_id =>
|
120
|
+
:source => 'plupload',
|
121
|
+
:site_id => @site,
|
92
122
|
:file => {
|
93
123
|
:file => fixture_file_upload('files/image.jpg', 'image/jpeg')
|
94
124
|
}
|
@@ -100,41 +130,63 @@ class Comfy::Admin::Cms::FilesControllerTest < ActionController::TestCase
|
|
100
130
|
|
101
131
|
def test_create_as_plupload_failure
|
102
132
|
assert_no_difference 'Comfy::Cms::File.count' do
|
103
|
-
post :create, :
|
133
|
+
post :create, :source => 'plupload', :site_id => @site, :file => { }
|
134
|
+
assert_response :unprocessable_entity
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
def test_create_as_redactor
|
139
|
+
assert_difference 'Comfy::Cms::File.count' do
|
140
|
+
post :create,
|
141
|
+
:source => 'redactor',
|
142
|
+
:site_id => @site,
|
143
|
+
:file => fixture_file_upload('files/image.jpg', 'image/jpeg')
|
144
|
+
assert_response :success
|
145
|
+
|
146
|
+
file = Comfy::Cms::File.last
|
147
|
+
assert_equal ({
|
148
|
+
'filelink' => file.file.url,
|
149
|
+
'filename' => file.label
|
150
|
+
}), JSON.parse(response.body)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
def test_create_as_redactor_failure
|
155
|
+
assert_no_difference 'Comfy::Cms::File.count' do
|
156
|
+
post :create, :source => 'redactor', :site_id => @site, :file => { }
|
104
157
|
assert_response :unprocessable_entity
|
105
158
|
end
|
106
159
|
end
|
107
160
|
|
108
161
|
def test_update
|
109
|
-
file
|
110
|
-
put :update, :site_id => file.site, :id => file, :file => {
|
162
|
+
put :update, :site_id => @site, :id => @file, :file => {
|
111
163
|
:label => 'New File',
|
112
164
|
:description => 'New Description',
|
113
165
|
:file => fixture_file_upload('files/image.jpg', 'image/jpeg')
|
114
166
|
}
|
115
167
|
assert_response :redirect
|
116
|
-
assert_redirected_to :action => :edit, :site_id =>
|
168
|
+
assert_redirected_to :action => :edit, :site_id => @site, :id => @file
|
117
169
|
assert_equal 'File updated', flash[:success]
|
118
|
-
file.reload
|
119
|
-
assert_equal 'New File', file.label
|
120
|
-
assert_equal 'New Description', file.description
|
170
|
+
@file.reload
|
171
|
+
assert_equal 'New File', @file.label
|
172
|
+
assert_equal 'New Description', @file.description
|
121
173
|
end
|
122
174
|
|
123
175
|
def test_update_failure
|
124
176
|
file = comfy_cms_files(:default)
|
125
|
-
put :update, :site_id =>
|
177
|
+
put :update, :site_id => @site, :id => @file, :file => {
|
126
178
|
:file => nil
|
127
179
|
}
|
128
180
|
assert_response :success
|
129
181
|
assert_template :edit
|
130
|
-
file.reload
|
131
|
-
assert_not_equal nil, file.file
|
182
|
+
@file.reload
|
183
|
+
assert_not_equal nil, @file.file
|
132
184
|
assert_equal 'Failed to update file', flash[:danger]
|
133
185
|
end
|
134
186
|
|
135
187
|
def test_destroy
|
136
188
|
assert_difference 'Comfy::Cms::File.count', -1 do
|
137
|
-
delete :destroy, :site_id =>
|
189
|
+
delete :destroy, :site_id => @site, :id => @file
|
138
190
|
assert_response :redirect
|
139
191
|
assert_redirected_to :action => :index
|
140
192
|
assert_equal 'File deleted', flash[:success]
|
@@ -143,20 +195,20 @@ class Comfy::Admin::Cms::FilesControllerTest < ActionController::TestCase
|
|
143
195
|
|
144
196
|
def test_destroy_as_xhr
|
145
197
|
assert_difference 'Comfy::Cms::File.count', -1 do
|
146
|
-
xhr :delete, :destroy, :site_id =>
|
198
|
+
xhr :delete, :destroy, :site_id => @site, :id => @file
|
147
199
|
assert_response :success
|
148
200
|
end
|
149
201
|
end
|
150
202
|
|
151
203
|
def test_reorder
|
152
|
-
file_one =
|
153
|
-
file_two =
|
154
|
-
:file => fixture_file_upload('files/image.jpg',
|
204
|
+
file_one = @file
|
205
|
+
file_two = @site.files.create(
|
206
|
+
:file => fixture_file_upload('files/image.jpg', 'image/jpeg')
|
155
207
|
)
|
156
208
|
assert_equal 0, file_one.position
|
157
209
|
assert_equal 1, file_two.position
|
158
210
|
|
159
|
-
put :reorder, :site_id =>
|
211
|
+
put :reorder, :site_id => @site, :comfy_cms_file => [file_two.id, file_one.id]
|
160
212
|
assert_response :success
|
161
213
|
file_one.reload
|
162
214
|
file_two.reload
|