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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -3
  3. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/arrow_bottom.gif +0 -0
  4. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/arrow_right.gif +0 -0
  5. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/checkerboard.gif +0 -0
  6. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_draft.gif +0 -0
  7. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_file.gif +0 -0
  8. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_layout.gif +0 -0
  9. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_move.gif +0 -0
  10. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_page.gif +0 -0
  11. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_site.gif +0 -0
  12. data/app/assets/images/{comfortable_mexican_sofa → comfy/admin/cms}/icon_snippet.gif +0 -0
  13. data/app/assets/javascripts/comfy/admin/cms/application.js.coffee +24 -0
  14. data/app/assets/javascripts/{comfortable_mexican_sofa/application.js.coffee → comfy/admin/cms/base.js.coffee} +20 -32
  15. data/app/assets/javascripts/comfy/admin/cms/custom.js.coffee +1 -0
  16. data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin}/cms/files.js.coffee +0 -0
  17. data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin/cms}/lib/bootstrap-datetimepicker.js +0 -0
  18. data/app/assets/javascripts/comfy/admin/cms/lib/diff.js.coffee +9 -0
  19. data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin/cms}/lib/diff/diff_match_patch.min.js +0 -0
  20. data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin/cms}/lib/diff/pretty_text_diff.min.js +0 -0
  21. data/app/assets/javascripts/comfy/admin/cms/lib/redactor.js +8221 -0
  22. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/filemanager.js +64 -0
  23. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/cs.js +86 -0
  24. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/da.js +74 -0
  25. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/de.js +79 -0
  26. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/es.js +74 -0
  27. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/fr.js +74 -0
  28. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/it.js +77 -0
  29. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/ja.js +75 -0
  30. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/nb.js +74 -0
  31. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/nl.js +79 -0
  32. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/pl.js +75 -0
  33. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/pt_BR.js +74 -0
  34. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/ru.js +75 -0
  35. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/sv.js +76 -0
  36. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/zh_CN.js +75 -0
  37. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/i18n/zh_TW.js +75 -0
  38. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/imagemanager.js +57 -0
  39. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/table.js +337 -0
  40. data/app/assets/javascripts/comfy/admin/cms/lib/redactor/video.js +77 -0
  41. data/app/assets/javascripts/{comfortable_mexican_sofa → comfy/admin}/cms/uploader.js.coffee +0 -2
  42. data/app/assets/stylesheets/comfy/admin/cms/application.sass +11 -0
  43. data/app/assets/stylesheets/{comfortable_mexican_sofa → comfy/admin/cms}/base.sass +15 -13
  44. data/app/assets/stylesheets/{comfortable_mexican_sofa → comfy/admin/cms}/bootstrap_overrides.sass +0 -0
  45. data/app/assets/stylesheets/{comfortable_mexican_sofa → comfy/admin/cms}/codemirror_overrides.sass +0 -0
  46. data/app/assets/stylesheets/comfy/admin/cms/custom.sass +1 -0
  47. data/app/assets/stylesheets/{comfortable_mexican_sofa → comfy/admin/cms}/lib/bootstrap-datetimepicker.css +0 -0
  48. data/app/assets/stylesheets/comfy/admin/cms/lib/redactor.css +921 -0
  49. data/app/assets/stylesheets/comfy/admin/cms/redactor_overrides.sass +20 -0
  50. data/app/controllers/comfy/admin/cms/base_controller.rb +3 -2
  51. data/app/controllers/comfy/admin/cms/files_controller.rb +52 -24
  52. data/app/helpers/comfy/cms_helper.rb +1 -0
  53. data/app/models/comfy/cms/file.rb +1 -1
  54. data/app/views/comfy/admin/cms/files/_page_form.html.haml +1 -1
  55. data/app/views/comfy/admin/cms/files/index.html.haml +1 -1
  56. data/app/views/layouts/comfy/admin/cms/_head.html.haml +11 -8
  57. data/comfortable_mexican_sofa.gemspec +0 -1
  58. data/lib/comfortable_mexican_sofa/engine.rb +0 -1
  59. data/lib/comfortable_mexican_sofa/version.rb +1 -1
  60. data/lib/generators/comfy/cms/assets_generator.rb +3 -3
  61. data/lib/generators/comfy/cms/cms_generator.rb +4 -11
  62. data/test/controllers/comfy/admin/cms/files_controller_test.rb +83 -31
  63. data/test/gemfiles/Gemfile.rails.4.0 +0 -1
  64. data/test/gemfiles/Gemfile.rails.4.1 +0 -1
  65. data/test/gemfiles/Gemfile.rails.4.2 +0 -1
  66. data/test/gemfiles/Gemfile.rails.master +0 -1
  67. data/test/generators/cms_assets_generator_test.rb +3 -3
  68. data/test/generators/cms_generator_test.rb +2 -6
  69. data/test/integration/js_variables_test.rb +20 -0
  70. metadata +50 -41
  71. data/app/assets/javascripts/comfortable_mexican_sofa/admin/application.js +0 -1
  72. data/app/assets/javascripts/comfortable_mexican_sofa/lib/diff.js.coffee +0 -9
  73. data/app/assets/stylesheets/comfortable_mexican_sofa/admin/application.css +0 -1
  74. data/app/assets/stylesheets/comfortable_mexican_sofa/application.sass +0 -8
  75. 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
- controllers = %w(comfy/admin/cms/layouts comfy/admin/cms/pages comfy/admin/cms/snippets)
50
- if controllers.member?(params[:controller])
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
- skip_before_action :load_fixtures
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
- files_scope = @site.files.not_page_file
11
- .includes(:categories)
12
- .for_category(params[:category])
13
- .order('comfy_cms_files.position')
14
- @files = comfy_paginate(files_scope, 50)
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
- respond_to do |format|
23
- if @file.save
24
- format.html do
25
- flash[:success] = I18n.t('comfy.admin.cms.files.created')
26
- redirect_to :action => :edit, :id => @file
27
- end
28
- format.plupload do
29
- render :text => render_to_string(:partial => 'file', :object => @file, :formats => [:html])
30
- end
31
- else
32
- format.html do
33
- flash.now[:danger] = I18n.t('comfy.admin.cms.files.creation_failure')
34
- render :action => :new
35
- end
36
- format.plupload do
37
- render :text => @file.errors.full_messages.to_sentence, :status => :unprocessable_entity
38
- end
39
- end
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
@@ -73,6 +73,7 @@ module Comfy::CmsHelper
73
73
 
74
74
  # Wrapper to deal with Kaminari vs WillPaginate
75
75
  def comfy_paginate(collection)
76
+ return unless collection
76
77
  if defined?(WillPaginate)
77
78
  will_paginate collection
78
79
  elsif defined?(Kaminari)
@@ -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 => '80x60#'
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' => "Content-type", :content => "text/html; charset=utf-8"}
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 'comfortable_mexican_sofa/application'
7
- = stylesheet_link_tag 'comfortable_mexican_sofa/admin/application'
8
- = javascript_include_tag 'comfortable_mexican_sofa/application'
9
- = javascript_include_tag 'comfortable_mexican_sofa/admin/application'
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
@@ -12,7 +12,6 @@ require 'haml-rails'
12
12
  require 'sass-rails'
13
13
  require 'coffee-rails'
14
14
  require 'codemirror-rails'
15
- require 'tinymce-rails'
16
15
  require 'bootstrap-sass'
17
16
  require 'plupload-rails'
18
17
 
@@ -1,3 +1,3 @@
1
1
  module ComfortableMexicanSofa
2
- VERSION = "1.12.4"
2
+ VERSION = "1.12.5"
3
3
  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/comfortable_mexican_sofa', 'app/assets/images/comfortable_mexican_sofa'
9
- directory 'javascripts/comfortable_mexican_sofa', 'app/assets/javascripts/comfortable_mexican_sofa'
10
- directory 'stylesheets/comfortable_mexican_sofa', 'app/assets/stylesheets/comfortable_mexican_sofa'
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
- directory 'app/assets/javascripts/comfortable_mexican_sofa/admin',
49
- 'app/assets/javascripts/comfortable_mexican_sofa/admin'
50
- directory 'app/assets/stylesheets/comfortable_mexican_sofa/admin',
51
- 'app/assets/stylesheets/comfortable_mexican_sofa/admin'
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 => comfy_cms_sites(:default)
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 => comfy_cms_sites(:default), :category => comfy_cms_categories(:default).label
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 => comfy_cms_sites(:default), :category => 'invalid'
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 => comfy_cms_sites(:default)
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
- site = comfy_cms_sites(:default)
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
- file = comfy_cms_files(:default)
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/#{file.site.id}/files/#{file.id}']"
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 => comfy_cms_sites(:default), :id => 'not_found'
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 => comfy_cms_sites(:default), :file => {
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 => comfy_cms_sites(:default), :file => { }
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
- :format => :plupload,
91
- :site_id => comfy_cms_sites(:default),
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, :format => :plupload, :site_id => comfy_cms_sites(:default), :file => { }
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 = comfy_cms_files(:default)
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 => file.site, :id => file
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 => file.site, :id => file, :file => {
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 => comfy_cms_sites(:default), :id => comfy_cms_files(:default)
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 => comfy_cms_sites(:default), :id => comfy_cms_files(:default)
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 = comfy_cms_files(:default)
153
- file_two = comfy_cms_sites(:default).files.create(
154
- :file => fixture_file_upload('files/image.jpg', "image/jpeg")
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 => comfy_cms_sites(:default), :comfy_cms_file => [file_two.id, file_one.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