skylinecms 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. data/.yardopts +1 -1
  2. data/CHANGELOG +50 -0
  3. data/README.md +11 -3
  4. data/app/controllers/skyline/application_controller.rb +6 -5
  5. data/app/controllers/skyline/articles_controller.rb +4 -4
  6. data/app/controllers/skyline/content_controller.rb +2 -4
  7. data/app/controllers/skyline/media/data_controller.rb +1 -0
  8. data/app/controllers/skyline/site/media_files_data_controller.rb +1 -0
  9. data/app/controllers/skyline/user_preferences_controller.rb +1 -1
  10. data/app/controllers/skyline/users_controller.rb +5 -1
  11. data/app/controllers/skyline/variant_current_editor_controller.rb +6 -1
  12. data/app/controllers/skyline/variants_controller.rb +2 -2
  13. data/app/helpers/skyline/content_helper.rb +1 -1
  14. data/app/helpers/skyline/editors/editor.rb +6 -6
  15. data/app/helpers/skyline/editors/joinable_list.rb +1 -1
  16. data/app/helpers/skyline/form_helper.rb +1 -0
  17. data/app/helpers/skyline/menu_helper.rb +0 -8
  18. data/app/helpers/skyline/presenters/presenter.rb +2 -2
  19. data/app/middleware/skyline/sprockets_middleware.rb +3 -8
  20. data/app/models/skyline/article.rb +29 -25
  21. data/app/models/skyline/article_version.rb +20 -20
  22. data/app/models/skyline/associated_tag.rb +1 -1
  23. data/app/models/skyline/grant.rb +1 -1
  24. data/app/models/skyline/link_section_link.rb +1 -1
  25. data/app/models/skyline/media_cache.rb +1 -1
  26. data/app/models/skyline/media_dir.rb +0 -2
  27. data/app/models/skyline/media_node.rb +1 -1
  28. data/app/models/skyline/object_ref.rb +3 -3
  29. data/app/models/skyline/page.rb +1 -3
  30. data/app/models/skyline/publication.rb +3 -1
  31. data/app/models/skyline/ref_object.rb +1 -1
  32. data/app/models/skyline/referable_uri.rb +1 -1
  33. data/app/models/skyline/right.rb +1 -1
  34. data/app/models/skyline/role.rb +1 -1
  35. data/app/models/skyline/section.rb +9 -9
  36. data/app/models/skyline/sections/content_collection_section.rb +3 -3
  37. data/app/models/skyline/sections/link_section.rb +3 -3
  38. data/app/models/skyline/sections/media_section.rb +2 -0
  39. data/app/models/skyline/sections/rss_section.rb +11 -12
  40. data/app/models/skyline/tag.rb +1 -1
  41. data/app/models/skyline/user.rb +213 -202
  42. data/app/models/skyline/user_preference.rb +2 -2
  43. data/app/models/skyline/variant.rb +18 -14
  44. data/app/observers/skyline/version_stamper.rb +1 -1
  45. data/app/templates/skyline/page/default/index.html.erb +1 -1
  46. data/app/views/skyline/articles/_security.html.erb +1 -1
  47. data/app/views/skyline/articles/edit.html.erb +1 -1
  48. data/app/views/skyline/content/{_add.rhtml → _add.html.erb} +0 -0
  49. data/app/views/skyline/content/{_filter.rhtml → _filter.html.erb} +0 -0
  50. data/app/views/skyline/content/{create.rhtml → create.html.erb} +0 -0
  51. data/app/views/skyline/content/{edit.rhtml → edit.html.erb} +0 -0
  52. data/app/views/skyline/content/{error.rhtml → error.html.erb} +0 -0
  53. data/app/views/skyline/content/{list.rhtml → list.html.erb} +3 -3
  54. data/app/views/skyline/content/{show.rhtml → show.html.erb} +0 -0
  55. data/app/views/skyline/content_sections/_tags.html.erb +1 -1
  56. data/app/views/skyline/shared/_header_area.html.erb +1 -1
  57. data/app/views/skyline/users/_new.html.erb +1 -1
  58. data/config/initializers/middlewares.rb +5 -1
  59. data/config/initializers/mime_types.rb +0 -6
  60. data/config/initializers/observers.rb +1 -1
  61. data/config/locales/en-US.yml +1 -1
  62. data/db/fixtures/roles_and_rights.rb +5 -5
  63. data/db/fixtures/roots.rb +1 -1
  64. data/doc/concepts.md +37 -0
  65. data/lib/skyline/belongs_to_referable.rb +5 -5
  66. data/lib/skyline/content/class_meta_data.rb +4 -3
  67. data/lib/skyline/content/content.rb +28 -18
  68. data/lib/skyline/content/exportable.rb +3 -3
  69. data/lib/skyline/content/field_meta_data.rb +12 -11
  70. data/lib/skyline/content/implementation.rb +7 -6
  71. data/lib/skyline/content/meta_data/field.rb +1 -1
  72. data/lib/skyline/content/stack.rb +1 -1
  73. data/lib/skyline/content/versioning/version.rb +1 -1
  74. data/lib/skyline/engine.rb +1 -1
  75. data/lib/skyline/has_many_referables_in.rb +4 -4
  76. data/lib/skyline/plugins/manager.rb +4 -3
  77. data/lib/skyline/plugins/plugin.rb +9 -1
  78. data/lib/skyline/rendering/renderer.rb +12 -2
  79. data/lib/skyline/sections/interface.rb +1 -1
  80. data/lib/skyline/taggable.rb +4 -4
  81. data/lib/skyline/version.rb +2 -2
  82. data/public/skyline/javascripts/src/application.js +1 -1
  83. data/public/skyline/javascripts/src/application_preinit.js +1 -0
  84. data/public/skyline/javascripts/src/library_uploader.js +1 -1
  85. data/public/skyline/javascripts/src/skyline.editor/src/skyline.editor.js +18 -18
  86. data/public/skyline/javascripts/src/skyline.editor/src/tinymce_preinit.js +4 -0
  87. data/public/skyline/javascripts/src/skyline.js +20 -18
  88. data/public/skyline/javascripts/src/skyline/src/skyline.js +2 -2
  89. data/public/skyline/javascripts/src/skyline/src/uploader.js +1 -1
  90. data/skylinecms.gemspec +7 -5
  91. data/test/factories.rb +2 -0
  92. data/test/integration/media_browser_super_access_test.rb +3 -3
  93. data/test/integration/media_browser_user_access_test.rb +2 -2
  94. data/test/integration/user_preferences_test.rb +5 -5
  95. data/test/test_helper.rb +1 -0
  96. data/test/unit/article_test.rb +1 -1
  97. data/test/unit/locales_test.rb +13 -3
  98. data/test/unit/test_content_object_test.rb +1 -1
  99. data/test/unit/test_section_test.rb +3 -2
  100. data/test/unit/user_preference_test.rb +2 -2
  101. data/vendor/digitpaint/nested_attributes_positioning.rb +5 -5
  102. metadata +66 -40
@@ -1,6 +1,5 @@
1
1
  # @private
2
2
  class Skyline::Content::Implementation
3
- extend ActiveSupport::Memoizable
4
3
  include Singleton
5
4
 
6
5
  # All the content_classes. This works fine when using in Rails
@@ -30,12 +29,14 @@ class Skyline::Content::Implementation
30
29
 
31
30
  # Does this implementations have a Settings class?
32
31
  def has_settings?
33
- "Settings".constantize
34
- true
35
- rescue NameError
36
- false
32
+ return @has_settings unless @has_settings === nil
33
+ @has_settings = begin
34
+ "Settings".constantize
35
+ true
36
+ rescue NameError
37
+ false
38
+ end
37
39
  end
38
- memoize :has_settings?
39
40
 
40
41
  # The settings class for this implementation
41
42
  def settings
@@ -99,7 +99,7 @@ module Skyline::Content
99
99
 
100
100
  # The method/column name this field writes to. This takes foreign_keys of belongs_to associations in account.
101
101
  def attribute_name
102
- self.association? && self.reflection.macro == :belongs_to && self.reflection.primary_key_name || self.name
102
+ self.association? && self.reflection.macro == :belongs_to && self.reflection.foreign_key || self.name
103
103
  end
104
104
 
105
105
  # The type of the associated column, or if it's serialized
@@ -2,7 +2,7 @@
2
2
  class Skyline::Content::Stack < Array
3
3
 
4
4
  def logger
5
- RAILS_DEFAULT_LOGGER
5
+ Rails.logger
6
6
  end
7
7
 
8
8
  def initialize(implementation,types)
@@ -1,6 +1,6 @@
1
1
  # @private
2
2
  class Skyline::Content::Versioning::Version < ActiveRecord::Base
3
- set_table_name "skyline_versions"
3
+ self.table_name = "skyline_versions"
4
4
  belongs_to :versionable, :polymorphic => true
5
5
  alias_attribute :current_version, :version
6
6
  alias_attribute :current_author, :author
@@ -27,7 +27,7 @@ module Skyline
27
27
  end
28
28
 
29
29
  initializer "skyline.setup_plugins_manager" do |app|
30
- app.config.skyline_plugins_manager = Skyline::Plugins::Manager.new(app)
30
+ app.config.skyline_plugins_manager = Skyline::Plugins::Manager.new(self, app)
31
31
  if app.config.cache_classes || !app.config.reload_plugins
32
32
  app.config.skyline_plugins_manager.load_all!
33
33
  end
@@ -34,7 +34,7 @@ module Skyline::HasManyReferablesIn
34
34
  base.send(:has_many, :image_refs, :class_name => "Skyline::ImageRef", :conditions => {:refering_type => base.name}, :foreign_key => :refering_id, :source_type => base.name, :dependent => :destroy)
35
35
  base.send(:has_many, :link_refs, :class_name => "Skyline::LinkRef", :conditions => {:refering_type => base.name}, :foreign_key => :refering_id, :source_type => base.name, :dependent => :destroy)
36
36
 
37
- base.send :alias_method_chain, :clone, :referables
37
+ base.send :alias_method_chain, :dup, :referables
38
38
  end
39
39
 
40
40
  module ClassMethods
@@ -72,11 +72,11 @@ module Skyline::HasManyReferablesIn
72
72
 
73
73
  # Implementation of the clone interface
74
74
  # @private
75
- def clone_with_referables
76
- clone_without_referables.tap do |clone|
75
+ def dup_with_referables
76
+ dup_without_referables.tap do |dup|
77
77
  if !self.referable_fields.nil?
78
78
  self.referable_fields.each do |field|
79
- clone.send("#{field}=".to_sym, self.send(field,true,{:nullify => true}))
79
+ dup.send("#{field}=".to_sym, self.send(field,true,{:nullify => true}))
80
80
  end
81
81
  end
82
82
  end
@@ -16,10 +16,11 @@
16
16
  # @private
17
17
  class Skyline::Plugins::Manager
18
18
 
19
- attr_reader :app
19
+ attr_reader :app, :engine
20
20
 
21
- def initialize(app)
21
+ def initialize(engine, app)
22
22
  @app = app
23
+ @engine = engine
23
24
  init_all!
24
25
  end
25
26
 
@@ -47,7 +48,7 @@ class Skyline::Plugins::Manager
47
48
  #
48
49
  # @return [Pathname] Rails.public_path + "skyline_plugins"
49
50
  def public_path
50
- Pathname.new(self.app.paths.public.to_a.first) + "skyline_plugins"
51
+ Pathname.new(self.app.paths['public'].to_a.first) + "skyline_plugins"
51
52
  end
52
53
 
53
54
  # All known plugins
@@ -58,10 +58,18 @@ class Skyline::Plugins::Plugin
58
58
  def add_view_path!
59
59
  vp = (self.path + "app/views")
60
60
  return unless vp.exist?
61
+ engine_vp = self.manager.engine.root + "app/views"
61
62
 
62
63
  ActiveSupport.on_load(:action_controller) do
63
- prepend_view_path(vp)
64
+ current_view_paths = self.view_paths
65
+ append_view_path(vp)
66
+ plugin_path = self.view_paths.dup.pop
67
+
68
+ ep = self.view_paths.detect{|p| p.to_path == engine_vp.to_s}
69
+ i = self.view_paths.index(ep)
70
+ self.view_paths = current_view_paths.dup.insert(i, plugin_path)
64
71
  end
72
+
65
73
  ActiveSupport.on_load(:action_mailer) do
66
74
  prepend_view_path(vp)
67
75
  end
@@ -62,7 +62,17 @@ class Skyline::Rendering::Renderer
62
62
  # Convert a renderable specified by string to a class
63
63
  def renderables_to_class(type, renderables, additional_map = {})
64
64
  map = {:sections => "Skyline::Sections"}.merge(additional_map)
65
- renderables.map{|f| f.kind_of?(String) ? "#{[map[type], f.camelize].compact.join("::")}".constantize : f}
65
+ renderables.map do |f|
66
+ if f.kind_of?(String)
67
+ if f =~ /\A::/
68
+ f.camelize.constantize
69
+ else
70
+ "#{[map[type], f.camelize].compact.join("::")}".constantize
71
+ end
72
+ else
73
+ f
74
+ end
75
+ end
66
76
  end
67
77
 
68
78
  end
@@ -163,7 +173,7 @@ class Skyline::Rendering::Renderer
163
173
  #
164
174
  # @return [String] The rendererd templates
165
175
  def render_collection(objects, options = {}, &block)
166
- self.clone.send(:_render_collection, objects, options, &block)
176
+ self.dup.send(:_render_collection, objects, options, &block)
167
177
  end
168
178
 
169
179
  # The current object that's being rendered
@@ -24,7 +24,7 @@ module Skyline::Sections::Interface
24
24
 
25
25
  def self.included(base)
26
26
  base.class_eval do
27
- set_table_name "skyline_sections_#{base.table_name}" if base.parents.include?(Skyline)
27
+ self.table_name = "skyline_sections_#{base.table_name}" if base.parents.include?(Skyline)
28
28
  has_one :section, :as => :sectionable, :class_name => "Skyline::Section"
29
29
  end
30
30
  base.send(:cattr_accessor, :default_interface)
@@ -28,7 +28,7 @@ module Skyline::Taggable
28
28
  base.send :has_many, :tags, :through => :associated_tags, :class_name => "Skyline::Tag"
29
29
  base.send :cattr_accessor, :taggable_type
30
30
 
31
- base.send :alias_method_chain, :clone, :associated_tags
31
+ base.send :alias_method_chain, :dup, :associated_tags
32
32
 
33
33
  base.class_eval do
34
34
  scope :with_tags, lambda {|tags|
@@ -60,9 +60,9 @@ module Skyline::Taggable
60
60
  self.class.available_tags
61
61
  end
62
62
 
63
- def clone_with_associated_tags
64
- clone_without_associated_tags.tap{|clone|
65
- clone.associated_tags = self.associated_tags.collect{|at| at.clone }
63
+ def dup_with_associated_tags
64
+ dup_without_associated_tags.tap{|dup|
65
+ dup.associated_tags = self.associated_tags.collect{|at| at.dup }
66
66
  }
67
67
  end
68
68
 
@@ -5,7 +5,7 @@ module Skyline
5
5
  # @private
6
6
  module VERSION
7
7
  MAJOR = 3
8
- MINOR = 2
8
+ MINOR = 3
9
9
  TINY = 0
10
10
  BUILD = 0
11
11
 
@@ -17,7 +17,7 @@ module Skyline
17
17
  if `git --git-dir=#{git_dir} describe --tags HEAD` =~ /^v\d+\.\d+\.\d+(\.\d+)?$/
18
18
  build = nil
19
19
  else
20
- build = `git --git-dir=#{git_dir} show HEAD --format=format:"%h" --quiet 2>&1`
20
+ build = `git --git-dir=#{git_dir} show HEAD --format=format:"%h" 2>&1 -s`
21
21
  if build =~ /[0-9a-f]+/
22
22
  build = build.to_s
23
23
  else
@@ -4,7 +4,7 @@
4
4
  //= require "rails"
5
5
  //= require "mootools_on_rails"
6
6
 
7
- var Application = {};
7
+ //= require "application_preinit"
8
8
 
9
9
  //= require "utils"
10
10
  //= require "draggable_files"
@@ -0,0 +1 @@
1
+ var Application = {};
@@ -1,4 +1,4 @@
1
- //= require <uploader>
1
+ //= require "uploader"
2
2
 
3
3
  /*
4
4
  Class: Application.LibraryUploader
@@ -1,12 +1,26 @@
1
- window.tinyMCEPreInit = {};
2
- tinyMCEPreInit.suffix = "";
3
- tinyMCEPreInit.base = "/javascripts/skyline.editor";
4
- tinyMCEPreInit.query = "";
1
+ //= require "tinymce_preinit.js"
5
2
 
6
3
  //= require "../vendor/tinymce/jscripts/tiny_mce/tiny_mce_src"
7
4
  //= require "../vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template"
8
5
  //= require "../vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin"
9
6
 
7
+ //= require_self
8
+
9
+ //= require "script_loader"
10
+ //= require "theme"
11
+ //= require "ui/separator"
12
+ //= require "ui/toolbar"
13
+ //= require "plugins/autoresize/editor_plugin"
14
+ //= require "plugins/skylinewindows/editor_plugin"
15
+ //= require "plugins/skylineimage/editor_plugin"
16
+ //= require "plugins/skylineimage/dialog"
17
+ //= require "plugins/skylinelink/editor_plugin"
18
+ //= require "plugins/skylinelink/dialog"
19
+ //= require "plugins/skylinecode/editor_plugin"
20
+ //= require "plugins/skylinecode/dialog"
21
+ //= require "plugins/skylinecontextmenu/editor_plugin"
22
+ //= require "plugins/skylinetable/editor_plugin"
23
+
10
24
  var __FILE__ = Skyline.Utils.getJsLocation("skyline.editor.js");
11
25
 
12
26
  Skyline.Editor = new Class({
@@ -130,17 +144,3 @@ Skyline.Editor = new Class({
130
144
  }
131
145
  });
132
146
 
133
- //= require "script_loader"
134
- //= require "theme"
135
- //= require "ui/separator"
136
- //= require "ui/toolbar"
137
- //= require "plugins/autoresize/editor_plugin"
138
- //= require "plugins/skylinewindows/editor_plugin"
139
- //= require "plugins/skylineimage/editor_plugin"
140
- //= require "plugins/skylineimage/dialog"
141
- //= require "plugins/skylinelink/editor_plugin"
142
- //= require "plugins/skylinelink/dialog"
143
- //= require "plugins/skylinecode/editor_plugin"
144
- //= require "plugins/skylinecode/dialog"
145
- //= require "plugins/skylinecontextmenu/editor_plugin"
146
- //= require "plugins/skylinetable/editor_plugin"
@@ -0,0 +1,4 @@
1
+ window.tinyMCEPreInit = {};
2
+ tinyMCEPreInit.suffix = "";
3
+ tinyMCEPreInit.base = "/javascripts/skyline.editor";
4
+ tinyMCEPreInit.query = "";
@@ -1,18 +1,20 @@
1
- //= require <skyline>
2
- //
3
- //= require <utils>
4
- //= require <events>
5
- //= require <drag>
6
- //= require <layout>
7
- //= require <tree>
8
- //= require <tag_selector>
9
- //= require <uploader>
10
- //= require <dialog>
11
- //= require <tabs>
12
- //= require <toggle>
13
- //= require <menubutton>
14
- //= require <sortable>
15
- //= require <hover_select>
16
- //= require <field_replicator>
17
- //= require <menu>
18
- //= require <table>
1
+ //= require "skyline/src/skyline"
2
+ //
3
+ //= require "skyline/src/utils"
4
+ //= require "events"
5
+ //= require "drag"
6
+ //= require "layout"
7
+ //= require "tree"
8
+ //= require "tag_selector"
9
+ //= require "uploader"
10
+ //= require "dialog"
11
+ //= require "tabs"
12
+ //= require "toggle"
13
+ //= require "menubutton"
14
+ //= require "sortable"
15
+ //= require "hover_select"
16
+ //= require "field_replicator"
17
+ //= require "menu"
18
+ //= require "table"
19
+
20
+ //= require_self
@@ -1,5 +1,5 @@
1
- //= require <mootools-core>
2
- //= require <mootools-more>
1
+ //= require "mootools-core"
2
+ //= require "mootools-more"
3
3
 
4
4
  /*
5
5
  Namespace: Skyline
@@ -1,4 +1,4 @@
1
- //= require <Swiff.Uploader>
1
+ //= require "Swiff.Uploader"
2
2
  /*
3
3
  Class: Skyline.Uploader
4
4
  An extended version of Swiff.Uploader. It has some extra event's and
@@ -29,17 +29,19 @@ Gem::Specification.new do |s|
29
29
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
30
30
 
31
31
  s.add_dependency "thor"
32
- s.add_dependency "rails", "3.0.9"
32
+ s.add_dependency "rails", "~> 3.2.2"
33
33
  s.add_dependency "polyglot", "0.3.2"
34
- s.add_dependency "sprockets", "1.0.2"
34
+ s.add_dependency "sprockets", "2.1.2"
35
35
  s.add_dependency "mime-types", "1.16"
36
36
  s.add_dependency "rmagick", "2.13.1"
37
- s.add_dependency "hpricot", "0.8.2"
37
+ s.add_dependency "hpricot", "0.8.6"
38
38
  s.add_dependency "guid", "0.1.1"
39
39
  s.add_dependency "will_paginate", "~> 3.0.0"
40
- s.add_dependency "seed-fu", "~> 1.2.0"
41
- s.add_dependency "mail", "~>2.2.0"
40
+ s.add_dependency "seed-fu", "2.2.0"
41
+ s.add_dependency "mail", "~>2.4.1"
42
42
  s.add_dependency "personify", "~> 1.1.0"
43
+ s.add_dependency 'factory_girl'
44
+ s.add_dependency 'shoulda'
43
45
 
44
46
  end
45
47
 
@@ -1,3 +1,5 @@
1
+ require 'factory_girl'
2
+
1
3
  Factory.define :media_dir, :class => Skyline::MediaDir do |d|
2
4
  d.name "test_dir"
3
5
  end
@@ -37,15 +37,15 @@ class MediaBrowserSuperAccessTest < ActionController::IntegrationTest
37
37
  end
38
38
 
39
39
  should "be able to create a MediaFile" do
40
- @u.allow(:post, skyline_media_dir_files_path(@media_dir),{:Filename => "/files/test.gif", :Filedata => fixture_file_upload("/../../vendor/plugins/skyline/db/fixtures/files/test.gif", "image/gif")})
40
+ @u.allow(:post, skyline_media_dir_files_path(@media_dir),{:Filename => "/files/test.gif", :Filedata => fixture_file_upload(File.dirname(__FILE__) + "/../../db/fixtures/files/test.gif", "image/gif")})
41
41
  end
42
42
 
43
43
  should "be able to edit a MediaFile" do
44
- @u.allow(:put, skyline_media_dir_file_path(@media_dir,@media_file), {:Filename => "/files/test.gif", :mediafile => fixture_file_upload("/../../vendor/plugins/skyline/db/fixtures/files/test.gif", "image/gif")})
44
+ @u.allow(:put, skyline_media_dir_file_path(@media_dir,@media_file), {:Filename => "/files/test.gif", :mediafile => fixture_file_upload(File.dirname(__FILE__) + "/../../db/fixtures/files/test.gif", "image/gif"), :format => :js})
45
45
  end
46
46
 
47
47
  should "be able to delete a MediaFile" do
48
- @u.allow(:delete, skyline_media_dir_file_path(@media_dir,@media_file))
48
+ @u.allow(:delete, skyline_media_dir_file_path(@media_dir,@media_file), :format => :js)
49
49
  end
50
50
  end
51
51
 
@@ -34,11 +34,11 @@ class MediaBrowserUserAccessTest < ActionController::IntegrationTest
34
34
  end
35
35
 
36
36
  should "not be able to create a MediaFile" do
37
- @u.deny(:post, skyline_media_dir_files_path(@media_dir),{:Filename => "/files/test.gif", :mediafile => fixture_file_upload("/../../vendor/plugins/skyline/db/fixtures/files/test.gif", "image/gif")})
37
+ @u.deny(:post, skyline_media_dir_files_path(@media_dir),{:Filename => "/files/test.gif", :mediafile => fixture_file_upload(File.dirname(__FILE__) + "/../../db/fixtures/files/test.gif", "image/gif")})
38
38
  end
39
39
 
40
40
  should "not be able to edit a MediaFile" do
41
- @u.deny(:put, skyline_media_dir_file_path(@media_dir,@media_file), {:Filename => "/files/test.gif", :mediafile => fixture_file_upload("/../../vendor/plugins/skyline/db/fixtures/files/test.gif", "image/gif")})
41
+ @u.deny(:put, skyline_media_dir_file_path(@media_dir,@media_file), {:Filename => "/files/test.gif", :mediafile => fixture_file_upload(File.dirname(__FILE__) + "/../../db/fixtures/files/test.gif", "image/gif")})
42
42
  end
43
43
 
44
44
  should "not be able to delete a MediaFile" do
@@ -14,27 +14,27 @@ class UserPreferencesTest < ActionController::IntegrationTest
14
14
  end
15
15
 
16
16
  should "be stored in a cookie with value and sent on request" do
17
- @u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"my_field" => "a.email@address.com"}))
17
+ @u.cookies["skyline_up"] = ActiveSupport::JSON.encode({"my_field" => "a.email@address.com"})
18
18
  @u.get "/skyline"
19
19
  @u.assert_equal('a.email@address.com', @user.user_preferences.get('my_field'))
20
20
  end
21
21
 
22
22
  should "be stored in a cookie with serialized hash and sent on request" do
23
23
  up_my_hash = {'a' => 1, 'b' => 2}
24
- @u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"my_hash" => up_my_hash}))
24
+ @u.cookies["skyline_up"] = ActiveSupport::JSON.encode({"my_hash" => up_my_hash})
25
25
  @u.get "/skyline"
26
26
  @u.assert_equal(up_my_hash, @user.user_preferences.get('my_hash'))
27
27
  end
28
28
 
29
29
  should "be able to collect multiple values and send after request" do
30
- @u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"my_field" => "a.email@address.com", "my_hash" => {'a' => 1, 'b' => 2}}))
30
+ @u.cookies["skyline_up"] = ActiveSupport::JSON.encode({"my_field" => "a.email@address.com", "my_hash" => {'a' => 1, 'b' => 2}})
31
31
  @u.get "/skyline"
32
32
  @u.assert_equal({'a' => 1, 'b' => 2}, @user.user_preferences.get('my_hash'))
33
33
  @u.assert_equal('a.email@address.com', @user.user_preferences.get('my_field'))
34
34
  end
35
35
 
36
36
  should "have empty value in cookie after request" do
37
- @u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"my_field" => "a.email@address.com"}))
37
+ @u.cookies["skyline_up"] = ActiveSupport::JSON.encode({"my_field" => "a.email@address.com"})
38
38
  @u.cookies["my_own_field"] = "Do not delete me"
39
39
 
40
40
  @u.get "/skyline"
@@ -60,7 +60,7 @@ class UserPreferencesTest < ActionController::IntegrationTest
60
60
 
61
61
  should "store delete value in cookie and handle correctly" do
62
62
  @u.assert @user.user_preferences.has_key?("a")
63
- @u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"_delete" => ["a","b"]}))
63
+ @u.cookies["skyline_up"] = ActiveSupport::JSON.encode({"_delete" => ["a","b"]})
64
64
 
65
65
  @u.get "/skyline"
66
66