skylinecms 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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