ckeditor 3.6.0 → 3.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. data/Gemfile +5 -1
  2. data/README.rdoc +44 -9
  3. data/Rakefile +28 -0
  4. data/config/locales/pt-BR.ckeditor.yml +8 -0
  5. data/lib/ckeditor.rb +6 -1
  6. data/lib/ckeditor/backend/carrierwave.rb +64 -0
  7. data/lib/ckeditor/backend/paperclip.rb +53 -0
  8. data/lib/ckeditor/http.rb +10 -2
  9. data/lib/ckeditor/orm/active_record.rb +4 -69
  10. data/lib/ckeditor/orm/base.rb +46 -0
  11. data/lib/ckeditor/orm/mongoid.rb +20 -71
  12. data/lib/ckeditor/version.rb +1 -1
  13. data/lib/generators/ckeditor/install_generator.rb +1 -0
  14. data/lib/generators/ckeditor/models_generator.rb +28 -9
  15. data/lib/generators/ckeditor/templates/ckeditor.rb +1 -2
  16. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/javascripts/application.js +1 -1
  17. data/lib/generators/ckeditor/templates/models/active_record/carrierwave/ckeditor/asset.rb +7 -0
  18. data/lib/generators/ckeditor/templates/models/active_record/carrierwave/ckeditor/attachment_file.rb +10 -0
  19. data/lib/generators/ckeditor/templates/models/active_record/carrierwave/ckeditor/picture.rb +7 -0
  20. data/lib/generators/ckeditor/templates/models/active_record/{migration.rb → carrierwave/migration.rb} +0 -0
  21. data/lib/generators/ckeditor/templates/models/active_record/{ckeditor → paperclip/ckeditor}/asset.rb +1 -4
  22. data/lib/generators/ckeditor/templates/models/active_record/{ckeditor → paperclip/ckeditor}/attachment_file.rb +0 -0
  23. data/lib/generators/ckeditor/templates/models/active_record/{ckeditor → paperclip/ckeditor}/picture.rb +0 -0
  24. data/lib/generators/ckeditor/templates/models/active_record/paperclip/migration.rb +26 -0
  25. data/lib/generators/ckeditor/templates/models/base/carrierwave/uploaders/ckeditor_attachment_file_uploader.rb +42 -0
  26. data/lib/generators/ckeditor/templates/models/base/carrierwave/uploaders/ckeditor_picture_uploader.rb +53 -0
  27. data/lib/generators/ckeditor/templates/models/mongoid/carrierwave/ckeditor/asset.rb +7 -0
  28. data/lib/generators/ckeditor/templates/models/mongoid/carrierwave/ckeditor/attachment_file.rb +10 -0
  29. data/lib/generators/ckeditor/templates/models/mongoid/carrierwave/ckeditor/picture.rb +7 -0
  30. data/lib/generators/ckeditor/templates/models/mongoid/paperclip/ckeditor/asset.rb +5 -0
  31. data/lib/generators/ckeditor/templates/models/mongoid/{ckeditor → paperclip/ckeditor}/attachment_file.rb +3 -3
  32. data/lib/generators/ckeditor/templates/models/mongoid/{ckeditor → paperclip/ckeditor}/picture.rb +0 -0
  33. data/test/controllers/attachment_files_controller_test.rb +9 -0
  34. data/test/controllers/pictures_controller_test.rb +9 -0
  35. data/test/dummy/config/application.rb +6 -2
  36. data/test/dummy/db/migrate/20110705195648_create_ckeditor_assets.rb +2 -2
  37. data/test/dummy/db/test.sqlite3 +0 -0
  38. data/test/dummy/log/test.log +2808 -0
  39. data/test/dummy/public/ckeditor_assets/attachments/4e53723cde2f151212000001/rails_tar.gz +0 -0
  40. data/test/dummy/public/ckeditor_assets/attachments/4e537333de2f15123b000001/rails_tar.gz +0 -0
  41. data/test/dummy/public/ckeditor_assets/attachments/4e537621de2f1514e9000001/rails_tar.gz +0 -0
  42. data/test/dummy/public/ckeditor_assets/attachments/4e53766ade2f15152c000001/rails_tar.gz +0 -0
  43. data/test/dummy/public/ckeditor_assets/attachments/4e53781ede2f1515b7000001/rails.tar.gz +0 -0
  44. data/test/dummy/public/ckeditor_assets/attachments/4e537849de2f151651000001/rails_tar.gz +0 -0
  45. data/test/dummy/public/ckeditor_assets/pictures/4e53723dde2f151212000002/content_rails.png +0 -0
  46. data/test/dummy/public/ckeditor_assets/pictures/4e53723dde2f151212000002/original_rails.png +0 -0
  47. data/test/dummy/public/ckeditor_assets/pictures/4e53723dde2f151212000002/thumb_rails.png +0 -0
  48. data/test/dummy/public/ckeditor_assets/pictures/4e537334de2f15123b000002/content_rails.png +0 -0
  49. data/test/dummy/public/ckeditor_assets/pictures/4e537334de2f15123b000002/original_rails.png +0 -0
  50. data/test/dummy/public/ckeditor_assets/pictures/4e537334de2f15123b000002/thumb_rails.png +0 -0
  51. data/test/dummy/public/ckeditor_assets/pictures/4e537637de2f1514e9000007/content_rails.png +0 -0
  52. data/test/dummy/public/ckeditor_assets/pictures/4e537637de2f1514e9000007/original_rails.png +0 -0
  53. data/test/dummy/public/ckeditor_assets/pictures/4e537637de2f1514e9000007/thumb_rails.png +0 -0
  54. data/test/dummy/public/ckeditor_assets/pictures/4e53768ade2f15152c000007/content_rails.png +0 -0
  55. data/test/dummy/public/ckeditor_assets/pictures/4e53768ade2f15152c000007/original_rails.png +0 -0
  56. data/test/dummy/public/ckeditor_assets/pictures/4e53768ade2f15152c000007/thumb_rails.png +0 -0
  57. data/test/dummy/public/ckeditor_assets/pictures/4e53783ade2f1515b7000007/content_rails.png +0 -0
  58. data/test/dummy/public/ckeditor_assets/pictures/4e53783ade2f1515b7000007/rails.png +0 -0
  59. data/test/dummy/public/ckeditor_assets/pictures/4e53783ade2f1515b7000007/thumb_rails.png +0 -0
  60. data/test/dummy/public/ckeditor_assets/pictures/4e537868de2f151651000007/content_rails.png +0 -0
  61. data/test/dummy/public/ckeditor_assets/pictures/4e537868de2f151651000007/original_rails.png +0 -0
  62. data/test/dummy/public/ckeditor_assets/pictures/4e537868de2f151651000007/thumb_rails.png +0 -0
  63. data/test/dummy/public/uploads/tmp/20110823-1231-4694-7541/rails.png +0 -0
  64. data/test/dummy/public/uploads/tmp/20110823-1232-4702-5501/rails.png +0 -0
  65. data/test/dummy/public/uploads/tmp/20110823-1245-5487-0966/rails.png +0 -0
  66. data/test/dummy/public/uploads/tmp/20110823-1245-5487-1597/rails.tar.gz +0 -0
  67. data/test/dummy/public/uploads/tmp/20110823-1245-5487-3892/rails.tar.gz +0 -0
  68. data/test/dummy/public/uploads/tmp/20110823-1245-5487-5787/rails.tar.gz +0 -0
  69. data/test/dummy/public/uploads/tmp/20110823-1245-5487-5790/rails.png +0 -0
  70. data/test/dummy/public/uploads/tmp/20110823-1245-5487-6435/rails.png +0 -0
  71. data/test/dummy/public/uploads/tmp/20110823-1245-5487-6978/rails.png +0 -0
  72. data/test/dummy/public/uploads/tmp/20110823-1245-5487-7226/rails.tar.gz +0 -0
  73. data/test/dummy/public/uploads/tmp/20110823-1245-5487-7290/rails.tar.gz +0 -0
  74. data/test/dummy/public/uploads/tmp/20110823-1245-5487-9279/rails.png +0 -0
  75. data/test/generators/models_generator_test.rb +34 -4
  76. data/test/models/attachment_file_test.rb +16 -0
  77. data/test/models/picture_test.rb +16 -0
  78. data/test/support/helpers.rb +30 -0
  79. data/test/support/raw_post.rb +9 -0
  80. data/test/test_helper.rb +2 -0
  81. data/test/tmp/app/models/ckeditor/asset.rb +2 -4
  82. data/test/tmp/app/models/ckeditor/attachment_file.rb +3 -3
  83. metadata +104 -11
  84. data/lib/generators/ckeditor/templates/models/mongoid/ckeditor/asset.rb +0 -7
@@ -1,90 +1,39 @@
1
1
  require 'orm_adapter/adapters/mongoid'
2
+ require 'ckeditor/orm/base'
2
3
 
3
4
  module Ckeditor
4
5
  module Orm
5
6
  module Mongoid
6
7
  module AssetBase
7
8
  def self.included(base)
8
- base.send(:include, InstanceMethods)
9
9
  base.send(:include, ::Mongoid::Document)
10
10
  base.send(:include, ::Mongoid::Timestamps)
11
- base.send(:include, ::Mongoid::Paperclip)
11
+ base.send(:include, Base::AssetBase::InstanceMethods)
12
+ base.send(:include, InstanceMethods)
12
13
  base.send(:extend, ClassMethods)
13
14
  end
15
+
16
+ module InstanceMethods
17
+ def type
18
+ _type
19
+ end
20
+
21
+ def as_json_methods
22
+ [:id, :type] + super
23
+ end
24
+ end
14
25
 
15
26
  module ClassMethods
16
27
  def self.extended(base)
17
28
  base.class_eval do
29
+ field :data_content_type, :type => String
30
+ field :data_file_size, :type => Integer
31
+ field :width, :type => Integer
32
+ field :height, :type => Integer
33
+
18
34
  belongs_to :assetable, :polymorphic => true
19
-
20
- before_validation :extract_content_type
21
- before_create :read_dimensions, :parameterize_filename
22
-
23
- delegate :url, :path, :styles, :size, :content_type, :to => :data
24
- end
25
- end
26
- end
27
-
28
- module InstanceMethods
29
- def filename
30
- data_file_name
31
- end
32
-
33
- def format_created_at
34
- I18n.l(created_at, :format => "%d.%m.%Y")
35
- end
36
-
37
- def has_dimensions?
38
- respond_to?(:width) && respond_to?(:height)
39
- end
40
-
41
- def image?
42
- Ckeditor::IMAGE_TYPES.include?(data_content_type)
43
- end
44
-
45
- def geometry
46
- @geometry ||= Paperclip::Geometry.from_file(data.to_file)
47
- @geometry
48
- end
49
-
50
- def url_content
51
- url
52
- end
53
-
54
- def url_thumb
55
- url(:thumb)
56
- end
57
-
58
- def as_json(options = nil)
59
- options = {
60
- :methods => [:url_content, :url_thumb, :size, :filename, :format_created_at],
61
- :root => "asset"
62
- }.merge(options || {})
63
-
64
- super options
65
- end
66
-
67
- protected
68
-
69
- def parameterize_filename
70
- unless data_file_name.blank?
71
- filename = Ckeditor::Utils.parameterize_filename(data_file_name)
72
- self.data.instance_write(:file_name, filename)
73
- end
74
- end
75
-
76
- def read_dimensions
77
- if image? && has_dimensions?
78
- self.width = geometry.width
79
- self.height = geometry.height
80
- end
81
- end
82
-
83
- # Extract content_type from filename using mime/types gem
84
- def extract_content_type
85
- if data_content_type == "application/octet-stream" && !data_file_name.blank?
86
- content_types = MIME::Types.type_for(data_file_name)
87
- self.data_content_type = content_types.first.to_s unless content_types.empty?
35
+
36
+ attr_accessible :data, :assetable_type, :assetable_id, :assetable
88
37
  end
89
38
  end
90
39
  end
@@ -1,6 +1,6 @@
1
1
  module Ckeditor
2
2
  module Version
3
- GEM = "3.6.0".freeze
3
+ GEM = "3.6.1".freeze
4
4
  EDITOR = "3.6.1".freeze
5
5
  end
6
6
  end
@@ -29,6 +29,7 @@ module Ckeditor
29
29
  filepath = Rails.root.join("tmp/#{filename}")
30
30
 
31
31
  if File.exist?(filepath)
32
+ FileUtils.mkdir_p(Rails.root.join("public/javascripts"))
32
33
  Ckeditor::Utils.extract(filepath, Rails.root.join('public', 'javascripts'))
33
34
  directory "ckeditor", "public/javascripts/ckeditor"
34
35
  FileUtils.rm_rf(filepath)
@@ -11,6 +11,9 @@ module Ckeditor
11
11
  # ORM configuration
12
12
  class_option :orm, :type => :string, :default => "active_record",
13
13
  :desc => "Backend processor for upload support"
14
+
15
+ class_option :backend, :type => :string, :default => 'paperclip',
16
+ :desc => "Paperclip (by default) or carrierwave"
14
17
 
15
18
  def self.source_root
16
19
  @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates', 'models/'))
@@ -21,18 +24,22 @@ module Ckeditor
21
24
  end
22
25
 
23
26
  def create_models
24
- template "#{generator_dir}/ckeditor/asset.rb",
25
- File.join('app/models', ckeditor_dir, "asset.rb")
26
-
27
- template "#{generator_dir}/ckeditor/picture.rb",
28
- File.join('app/models', ckeditor_dir, "picture.rb")
29
-
30
- template "#{generator_dir}/ckeditor/attachment_file.rb",
31
- File.join('app/models', ckeditor_dir, "attachment_file.rb")
27
+ [:asset, :picture, :attachment_file].each do |filename|
28
+ template "#{generator_dir}/ckeditor/#{filename}.rb",
29
+ File.join('app/models', ckeditor_dir, "#{filename}.rb")
30
+ end
31
+
32
+ if backend == "carrierwave"
33
+ template "#{uploaders_dir}/uploaders/ckeditor_attachment_file_uploader.rb",
34
+ File.join("app/uploaders", "ckeditor_attachment_file_uploader.rb")
35
+
36
+ template "#{uploaders_dir}/uploaders/ckeditor_picture_uploader.rb",
37
+ File.join("app/uploaders", "ckeditor_picture_uploader.rb")
38
+ end
32
39
  end
33
40
 
34
41
  def create_migration
35
- if options[:orm] == "active_record"
42
+ if ["active_record"].include?(orm)
36
43
  migration_template "#{generator_dir}/migration.rb", File.join('db/migrate', "create_ckeditor_assets.rb")
37
44
  end
38
45
  end
@@ -44,8 +51,20 @@ module Ckeditor
44
51
  end
45
52
 
46
53
  def generator_dir
54
+ @generator_dir ||= [orm, backend].join('/')
55
+ end
56
+
57
+ def uploaders_dir
58
+ @uploaders_dir ||= ['base', 'carrierwave'].join('/')
59
+ end
60
+
61
+ def orm
47
62
  options[:orm] || "active_record"
48
63
  end
64
+
65
+ def backend
66
+ options[:backend] || "paperclip"
67
+ end
49
68
  end
50
69
  end
51
70
  end
@@ -7,13 +7,12 @@ if Object.const_defined?("Ckeditor")
7
7
  # available as additional gems.
8
8
  require "ckeditor/orm/<%= options[:orm] %>"
9
9
 
10
-
11
10
  # Allowed image file types for upload.
12
11
  # Set to nil or [] (empty array) for all file types
13
12
  # config.image_file_types = ["jpg", "jpeg", "png", "gif", "tiff"]
14
13
 
15
14
  # Allowed attachment file types for upload.
16
15
  # Set to nil or [] (empty array) for all file types
17
- # config.attachment_file_types = ["doc", "docx", "rar", "zip", "xls", "swf"]
16
+ # config.attachment_file_types = ["doc", "docx", "xls", "odt", "ods", "pdf", "rar", "zip", "tar", "swf"]
18
17
  end
19
18
  end
@@ -163,7 +163,7 @@ qq.extend(qq.FileUploaderInput.prototype, {
163
163
  qq.FileUploaderBasic.prototype._onComplete.apply(this, arguments);
164
164
 
165
165
  var item = this._getItemByFileId(id);
166
- var asset = result.asset;
166
+ var asset = result.asset ? result.asset : result;
167
167
 
168
168
  if (asset && asset.id){
169
169
  qq.addClass(item, this._classes.success);
@@ -0,0 +1,7 @@
1
+ class Ckeditor::Asset < ActiveRecord::Base
2
+ include Ckeditor::Orm::ActiveRecord::AssetBase
3
+
4
+ delegate :url, :current_path, :size, :content_type, :filename, :to => :data
5
+
6
+ validates_presence_of :data
7
+ end
@@ -0,0 +1,10 @@
1
+ class Ckeditor::AttachmentFile < Ckeditor::Asset
2
+ mount_uploader :data, CkeditorAttachmentFileUploader, :mount_on => :data_file_name
3
+
4
+ def url_thumb
5
+ @url_thumb ||= begin
6
+ extname = File.extname(filename).gsub(/^\./, '')
7
+ "/javascripts/ckeditor/filebrowser/images/thumbs/#{extname}.gif"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ class Ckeditor::Picture < Ckeditor::Asset
2
+ mount_uploader :data, CkeditorPictureUploader, :mount_on => :data_file_name
3
+
4
+ def url_content
5
+ url(:content)
6
+ end
7
+ end
@@ -1,7 +1,4 @@
1
- require 'mime/types'
2
-
3
1
  class Ckeditor::Asset < ActiveRecord::Base
4
2
  include Ckeditor::Orm::ActiveRecord::AssetBase
5
-
6
- attr_accessible :data, :assetable_type, :assetable_id, :assetable
3
+ include Ckeditor::Backend::Paperclip
7
4
  end
@@ -0,0 +1,26 @@
1
+ class CreateCkeditorAssets < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :ckeditor_assets do |t|
4
+ t.string :data_file_name, :null => false
5
+ t.string :data_content_type
6
+ t.integer :data_file_size
7
+
8
+ t.integer :assetable_id
9
+ t.string :assetable_type, :limit => 30
10
+ t.string :type, :limit => 30
11
+
12
+ # Uncomment it to save images dimensions, if your need it
13
+ # t.integer :width
14
+ # t.integer :height
15
+
16
+ t.timestamps
17
+ end
18
+
19
+ add_index "ckeditor_assets", ["assetable_type", "type", "assetable_id"], :name => "idx_ckeditor_assetable_type"
20
+ add_index "ckeditor_assets", ["assetable_type", "assetable_id"], :name => "idx_ckeditor_assetable"
21
+ end
22
+
23
+ def self.down
24
+ drop_table :ckeditor_assets
25
+ end
26
+ end
@@ -0,0 +1,42 @@
1
+ # encoding: utf-8
2
+ class CkeditorAttachmentFileUploader < CarrierWave::Uploader::Base
3
+ include Ckeditor::Backend::CarrierWave
4
+
5
+ # Include RMagick or ImageScience support:
6
+ # include CarrierWave::RMagick
7
+ # include CarrierWave::MiniMagick
8
+ # include CarrierWave::ImageScience
9
+
10
+ # Choose what kind of storage to use for this uploader:
11
+ storage :file
12
+
13
+ # Override the directory where uploaded files will be stored.
14
+ # This is a sensible default for uploaders that are meant to be mounted:
15
+ def store_dir
16
+ "ckeditor_assets/attachments/#{model.id}"
17
+ end
18
+
19
+ # Provide a default URL as a default if there hasn't been a file uploaded:
20
+ # def default_url
21
+ # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
22
+ # end
23
+
24
+ # Process files as they are uploaded:
25
+ # process :scale => [200, 300]
26
+ #
27
+ # def scale(width, height)
28
+ # # do something
29
+ # end
30
+
31
+ # Add a white list of extensions which are allowed to be uploaded.
32
+ # For images you might use something like this:
33
+ def extension_white_list
34
+ Ckeditor.attachment_file_types
35
+ end
36
+
37
+ # Override the filename of the uploaded files:
38
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
39
+ # def filename
40
+ # "something.jpg" if original_filename
41
+ # end
42
+ end
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+ class CkeditorPictureUploader < CarrierWave::Uploader::Base
3
+ include Ckeditor::Backend::CarrierWave
4
+
5
+ # Include RMagick or ImageScience support:
6
+ # include CarrierWave::RMagick
7
+ include CarrierWave::MiniMagick
8
+ # include CarrierWave::ImageScience
9
+
10
+ # Choose what kind of storage to use for this uploader:
11
+ storage :file
12
+
13
+ # Override the directory where uploaded files will be stored.
14
+ # This is a sensible default for uploaders that are meant to be mounted:
15
+ def store_dir
16
+ "ckeditor_assets/pictures/#{model.id}"
17
+ end
18
+
19
+ # Provide a default URL as a default if there hasn't been a file uploaded:
20
+ # def default_url
21
+ # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
22
+ # end
23
+
24
+ # Process files as they are uploaded:
25
+ # process :scale => [200, 300]
26
+ #
27
+ # def scale(width, height)
28
+ # # do something
29
+ # end
30
+
31
+ process :read_dimensions
32
+
33
+ # Create different versions of your uploaded files:
34
+ version :thumb do
35
+ process :resize_to_fill => [118, 100]
36
+ end
37
+
38
+ version :content do
39
+ process :resize_to_fit => [800, 800]
40
+ end
41
+
42
+ # Add a white list of extensions which are allowed to be uploaded.
43
+ # For images you might use something like this:
44
+ def extension_white_list
45
+ Ckeditor.image_file_types
46
+ end
47
+
48
+ # Override the filename of the uploaded files:
49
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
50
+ # def filename
51
+ # "something.jpg" if original_filename
52
+ # end
53
+ end
@@ -0,0 +1,7 @@
1
+ class Ckeditor::Asset
2
+ include Ckeditor::Orm::Mongoid::AssetBase
3
+
4
+ delegate :url, :current_path, :size, :content_type, :filename, :to => :data
5
+
6
+ validates_presence_of :data
7
+ end
@@ -0,0 +1,10 @@
1
+ class Ckeditor::AttachmentFile < Ckeditor::Asset
2
+ mount_uploader :data, CkeditorAttachmentFileUploader, :mount_on => :data_file_name
3
+
4
+ def url_thumb
5
+ @url_thumb ||= begin
6
+ extname = File.extname(filename).gsub(/^\./, '')
7
+ "/javascripts/ckeditor/filebrowser/images/thumbs/#{extname}.gif"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ class Ckeditor::Picture < Ckeditor::Asset
2
+ mount_uploader :data, CkeditorPictureUploader, :mount_on => :data_file_name
3
+
4
+ def url_content
5
+ url(:content)
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ class Ckeditor::Asset
2
+ include Ckeditor::Orm::Mongoid::AssetBase
3
+ include Mongoid::Paperclip
4
+ include Ckeditor::Backend::Paperclip
5
+ end
@@ -8,8 +8,8 @@ class Ckeditor::AttachmentFile < Ckeditor::Asset
8
8
 
9
9
  def url_thumb
10
10
  @url_thumb ||= begin
11
- extname = File.extname(filename).gsub(/^\./, '')
12
- "/javascripts/ckeditor/filebrowser/images/thumbs/#{extname}.gif"
13
- end
11
+ extname = File.extname(filename).gsub(/^\./, '')
12
+ "/javascripts/ckeditor/filebrowser/images/thumbs/#{extname}.gif"
13
+ end
14
14
  end
15
15
  end
@@ -2,6 +2,7 @@ require 'test_helper'
2
2
 
3
3
  class AttachmentFilesControllerTest < ActionController::TestCase
4
4
  tests Ckeditor::AttachmentFilesController
5
+ include RawPost
5
6
 
6
7
  def setup
7
8
  @attachment = fixture_file_upload('files/rails.tar.gz', 'application/x-gzip')
@@ -34,6 +35,14 @@ class AttachmentFilesControllerTest < ActionController::TestCase
34
35
  assert_equal 200, @response.status
35
36
  end
36
37
 
38
+ test "create action via html5 upload" do
39
+ assert_difference 'Ckeditor::AttachmentFile.count' do
40
+ raw_post :create, { :qqfile => @attachment.original_filename }, @attachment.read
41
+ end
42
+
43
+ assert_equal 200, @response.status
44
+ end
45
+
37
46
  test "invalid params for create action" do
38
47
  assert_no_difference 'Ckeditor::AttachmentFile.count' do
39
48
  post :create, :qqfile => nil