refinerycms-core 2.0.10 → 2.1.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 (181) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/refinery/admin.js.erb +126 -234
  3. data/app/assets/javascripts/refinery/ajaxy_pagination.js.coffee +1 -1
  4. data/app/assets/javascripts/refinery/boot_wym.js.erb +4 -8
  5. data/app/assets/javascripts/refinery/core.js +1 -1
  6. data/app/assets/javascripts/refinery/interface.js.coffee.erb +3 -16
  7. data/app/assets/javascripts/refinery/modal_dialogs.js.erb +0 -3
  8. data/app/assets/javascripts/refinery/nestedsortables.js +312 -312
  9. data/app/assets/javascripts/refinery/refinery.js.erb +14 -15
  10. data/app/assets/javascripts/refinery/site_bar.js +3 -9
  11. data/app/assets/javascripts/refinery/sortable_list.js +145 -0
  12. data/app/assets/javascripts/refinery/sortable_menu.js.coffee +3 -4
  13. data/app/assets/javascripts/refinery/submit_continue.js.coffee.erb +1 -2
  14. data/app/assets/javascripts/refinery/tree.js +3 -3
  15. data/app/assets/javascripts/refinery/wymeditor.js +6 -6
  16. data/{public → app/assets/javascripts}/wymeditor/GPL-license.txt +0 -0
  17. data/{public → app/assets/javascripts}/wymeditor/MIT-license.txt +0 -0
  18. data/{public → app/assets/javascripts}/wymeditor/README +0 -0
  19. data/app/assets/javascripts/wymeditor/browsers/mozilla.js.erb +10 -11
  20. data/app/assets/javascripts/wymeditor/browsers/webkit.js.erb +17 -18
  21. data/app/assets/javascripts/wymeditor/classes.js.erb +3 -5
  22. data/app/assets/javascripts/wymeditor/functions.js.erb +5 -1
  23. data/app/assets/javascripts/wymeditor/prototypes.js.erb +0 -3
  24. data/app/assets/javascripts/wymeditor/setup.js.erb +5 -5
  25. data/app/assets/javascripts/wymeditor/skins/refinery/skin.js +1 -4
  26. data/app/assets/javascripts/wymeditor/validators.js.erb +3 -2
  27. data/app/assets/stylesheets/{formatting.css.scss → refinery/formatting.css.scss} +0 -0
  28. data/app/assets/stylesheets/refinery/layout.css.scss +41 -11
  29. data/app/assets/stylesheets/{theme.css.scss → refinery/theme.css.scss} +0 -0
  30. data/app/controllers/refinery/sitemap_controller.rb +1 -5
  31. data/app/helpers/refinery/admin_helper.rb +6 -0
  32. data/app/helpers/refinery/image_helper.rb +2 -1
  33. data/app/helpers/refinery/menu_helper.rb +0 -49
  34. data/app/helpers/refinery/meta_helper.rb +7 -3
  35. data/app/helpers/refinery/site_bar_helper.rb +3 -15
  36. data/app/models/refinery/core/base_model.rb +2 -0
  37. data/{lib → app/presenters}/refinery/base_presenter.rb +1 -2
  38. data/app/views/layouts/application.html.erb +8 -7
  39. data/app/views/refinery/_content_page.html.erb +1 -1
  40. data/app/views/refinery/_google_analytics.html.erb +12 -5
  41. data/app/views/refinery/_head.html.erb +11 -15
  42. data/app/views/refinery/_header.html.erb +1 -4
  43. data/app/views/refinery/_javascripts.html.erb +14 -8
  44. data/app/views/refinery/_site_bar.html.erb +4 -4
  45. data/app/views/refinery/admin/_form_advanced_options_menu.html.erb +12 -0
  46. data/app/views/refinery/admin/_javascripts.html.erb +13 -1
  47. data/app/views/refinery/admin/_locale_picker.html.erb +11 -0
  48. data/app/views/refinery/admin/_make_sortable.html.erb +8 -5
  49. data/app/views/refinery/admin/_search.html.erb +1 -7
  50. data/app/views/refinery/admin/_search_header.html.erb +1 -0
  51. data/app/views/refinery/admin/_wysiwyg.html.erb +16 -0
  52. data/config/initializers/will_paginate_monkeypatch.rb +1 -1
  53. data/config/locales/bg.yml +5 -1
  54. data/config/locales/cs.yml +5 -1
  55. data/config/locales/da.yml +5 -1
  56. data/config/locales/de.yml +7 -3
  57. data/config/locales/el.yml +5 -1
  58. data/config/locales/en.yml +7 -1
  59. data/config/locales/es.yml +5 -1
  60. data/config/locales/fi.yml +5 -1
  61. data/config/locales/fr.yml +5 -1
  62. data/config/locales/hu.yml +82 -0
  63. data/config/locales/it.yml +38 -34
  64. data/config/locales/ja.yml +5 -1
  65. data/config/locales/ko.yml +5 -1
  66. data/config/locales/lt.yml +5 -1
  67. data/config/locales/lv.yml +5 -1
  68. data/config/locales/nb.yml +5 -1
  69. data/config/locales/nl.yml +36 -29
  70. data/config/locales/pl.yml +8 -1
  71. data/config/locales/pt-BR.yml +7 -3
  72. data/config/locales/pt.yml +82 -0
  73. data/config/locales/rs.yml +5 -1
  74. data/config/locales/ru.yml +5 -1
  75. data/config/locales/sk.yml +10 -3
  76. data/config/locales/sl.yml +5 -1
  77. data/config/locales/sv.yml +5 -1
  78. data/config/locales/tr.yml +82 -0
  79. data/config/locales/uk.yml +77 -0
  80. data/config/locales/vi.yml +5 -1
  81. data/config/locales/zh-CN.yml +5 -1
  82. data/config/locales/zh-TW.yml +5 -1
  83. data/config/routes.rb +3 -3
  84. data/lib/generators/refinery/cms/cms_generator.rb +29 -0
  85. data/lib/generators/refinery/cms/templates/.gitignore +1 -0
  86. data/lib/generators/refinery/cms/templates/app/views/sitemap/index.xml.builder +13 -13
  87. data/lib/generators/refinery/core/templates/config/initializers/refinery/core.rb.erb +8 -12
  88. data/lib/generators/refinery/dummy/templates/rails/database.yml +3 -3
  89. data/lib/generators/refinery/engine/engine_generator.rb +8 -12
  90. data/lib/generators/refinery/engine/templates/Gemfile +5 -39
  91. data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb.erb +4 -4
  92. data/lib/generators/refinery/engine/templates/app/models/refinery/namespace/singular_name.rb.erb +2 -3
  93. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_actions.html.erb +1 -1
  94. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_form.html.erb +31 -33
  95. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +1 -3
  96. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_singular_name.html.erb +2 -2
  97. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/index.html.erb +1 -1
  98. data/lib/generators/refinery/engine/templates/config/locales/cs.yml +28 -0
  99. data/lib/generators/refinery/engine/templates/config/locales/it.yml +28 -0
  100. data/lib/generators/refinery/engine/templates/config/locales/nl.yml +6 -6
  101. data/lib/generators/refinery/engine/templates/config/locales/tr.yml +28 -0
  102. data/lib/generators/refinery/engine/templates/config/routes.rb.erb +2 -2
  103. data/lib/generators/refinery/engine/templates/db/seeds.rb.erb +1 -1
  104. data/lib/generators/refinery/engine/templates/lib/generators/refinery/extension_plural_name_generator.rb.erb +1 -1
  105. data/lib/generators/refinery/engine/templates/lib/refinery/plural_name/engine.rb.erb +1 -1
  106. data/lib/generators/refinery/engine/templates/spec/{requests → features}/refinery/namespace/admin/plural_name_spec.rb.erb +1 -1
  107. data/lib/generators/refinery/engine/templates/spec/spec_helper.rb +25 -49
  108. data/lib/generators/refinery/form/form_generator.rb +1 -13
  109. data/lib/generators/refinery/form/templates/app/models/refinery/namespace/singular_name.rb.erb +0 -4
  110. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +2 -2
  111. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/spam.html.erb +7 -6
  112. data/lib/generators/refinery/form/templates/config/locales/nl.yml +29 -29
  113. data/lib/generators/refinery/form/templates/config/locales/tr.yml +78 -0
  114. data/lib/generators/refinery/form/templates/config/routes.rb.erb +1 -1
  115. data/lib/generators/refinery/form/templates/db/migrate/1_create_plural_name.rb.erb +2 -6
  116. data/lib/generators/refinery/form/templates/db/seeds.rb.erb +1 -1
  117. data/lib/generators/refinery/form/templates/lib/refinery/plural_name/engine.rb.erb +1 -1
  118. data/lib/generators/refinery/form/templates/refinerycms-plural_name.gemspec +2 -5
  119. data/lib/refinery.rb +191 -0
  120. data/lib/refinery/admin/base_controller.rb +27 -16
  121. data/lib/refinery/application_controller.rb +15 -47
  122. data/lib/refinery/cli.rb +48 -27
  123. data/lib/refinery/core.rb +7 -183
  124. data/lib/refinery/core/configuration.rb +17 -9
  125. data/lib/refinery/core/engine.rb +11 -47
  126. data/lib/refinery/crud.rb +81 -66
  127. data/lib/refinery/engine.rb +52 -55
  128. data/lib/refinery/ext/action_view/helpers/form_builder.rb +2 -0
  129. data/lib/refinery/extension_generation.rb +208 -110
  130. data/lib/refinery/menu.rb +16 -7
  131. data/lib/refinery/menu_item.rb +56 -54
  132. data/lib/refinery/plugin.rb +11 -3
  133. data/lib/refinery/plugins.rb +14 -1
  134. data/lib/refinery/version.rb +3 -3
  135. data/refinerycms-core.gemspec +11 -10
  136. data/spec/controllers/refinery/admin/dummy_controller_spec.rb +57 -0
  137. data/spec/controllers/refinery/admin/refinery_core_controller_spec.rb +3 -4
  138. data/spec/controllers/refinery/sitemap_controller_spec.rb +1 -14
  139. data/spec/{requests → features}/refinery/admin/custom_assets_spec.rb +1 -1
  140. data/spec/{requests → features}/refinery/admin/dialogs_spec.rb +1 -1
  141. data/spec/features/refinery/admin/xhr_paging_spec.rb +55 -0
  142. data/spec/features/refinery/application_layout_spec.rb +19 -0
  143. data/spec/features/refinery/core_spec.rb +14 -0
  144. data/spec/{requests → features}/refinery/site_bar_spec.rb +1 -1
  145. data/spec/helpers/refinery/meta_helper_spec.rb +25 -0
  146. data/spec/lib/generators/refinery/cms/cms_generator_spec.rb +61 -0
  147. data/spec/lib/generators/refinery/engine/engine_generator_multiple_resources_spec.rb +28 -1
  148. data/spec/lib/generators/refinery/engine/engine_generator_sanity_check_spec.rb +7 -7
  149. data/spec/lib/generators/refinery/engine/engine_generator_spec.rb +69 -8
  150. data/spec/lib/generators/refinery/engine/engine_generator_with_i18n_spec.rb +0 -2
  151. data/spec/lib/generators/refinery/form/form_generator_spec.rb +9 -1
  152. data/spec/lib/refinery/application_controller_spec.rb +48 -63
  153. data/spec/lib/refinery/cli_spec.rb +136 -0
  154. data/spec/lib/refinery/core/configuration_spec.rb +17 -0
  155. data/spec/lib/refinery/core_spec.rb +19 -13
  156. data/spec/lib/refinery/crud_spec.rb +0 -4
  157. data/spec/lib/refinery/menu_spec.rb +16 -26
  158. data/spec/support/refinery.rb +6 -1
  159. data/{app → vendor}/assets/javascripts/jquery/GPL-LICENSE.txt +0 -0
  160. data/{app → vendor}/assets/javascripts/jquery/MIT-LICENSE.txt +0 -0
  161. data/vendor/assets/javascripts/jquery/jquery.browser.js +49 -0
  162. data/{app → vendor}/assets/javascripts/jquery/jquery.html5-placeholder-shim.js +0 -0
  163. data/{app → vendor}/assets/javascripts/jquery/jquery.jcarousel.js +0 -0
  164. data/{app → vendor}/assets/javascripts/jquery/jquery.textTruncate.js +0 -0
  165. data/{app → vendor}/assets/javascripts/jquery/jquery.timers.js +0 -0
  166. data/{app → vendor}/assets/javascripts/modernizr-min.js +0 -0
  167. metadata +231 -78
  168. data/app/assets/images/refinery/resolve_digital_footer_logo.png +0 -0
  169. data/app/assets/javascripts/dd_belatedpng.js +0 -13
  170. data/app/assets/javascripts/jquery/jquery.corner.js +0 -345
  171. data/app/assets/stylesheets/application.css.scss +0 -55
  172. data/app/assets/stylesheets/home.css.scss +0 -3
  173. data/app/views/refinery/_ie6check.html.erb +0 -63
  174. data/app/views/refinery/_menu.html.erb +0 -20
  175. data/app/views/refinery/_menu_branch.html.erb +0 -19
  176. data/lib/generators/refinery/engine/templates/Guardfile +0 -27
  177. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_locale_picker.html.erb +0 -11
  178. data/lib/refinery/catch_all_routes.rb +0 -3
  179. data/lib/tasks/yard.rake +0 -30
  180. data/spec/requests/refinery/admin/controller_restriction_spec.rb +0 -27
  181. data/spec/requests/refinery/search_spec.rb +0 -71
@@ -1,89 +1,91 @@
1
1
  module Refinery
2
- class MenuItem < HashWithIndifferentAccess
2
+ class MenuItem
3
3
 
4
- class << self
5
- def attributes
6
- [:title, :parent_id, :lft, :rgt, :depth, :url, :menu, :menu_match]
7
- end
4
+ attr_accessor :menu, :title, :parent_id, :lft, :rgt, :depth, :url, :menu_match,
5
+ :original_type, :original_id
8
6
 
9
- def apply_attributes!
10
- attributes.each do |attribute|
11
- class_eval %{
12
- def #{attribute}
13
- @#{attribute} ||= self[:#{attribute}]
14
- end
15
- } unless self.respond_to?(attribute)
16
- class_eval %{
17
- def #{attribute}=(attr)
18
- @#{attribute} = attr
19
- end
20
- } unless self.respond_to?(:"#{attribute}=")
21
- end
7
+ def initialize(menu, options = {})
8
+ @menu = menu
9
+ remap!(options).each do |key, value|
10
+ send "#{key}=", value
22
11
  end
12
+ self.attributes = options
23
13
  end
24
14
 
25
- def original_id
26
- @original_id ||= self[:id]
27
- end
28
-
29
- def original_type
30
- @original_type ||= self[:type]
15
+ def remap!(options)
16
+ options[:original_id] = options.delete(:id)
17
+ options[:original_type] = options.delete(:type)
18
+ options
31
19
  end
32
20
 
33
- apply_attributes!
34
-
35
21
  def ancestors
36
- return @ancestors if @ancestors
37
- @ancestors = []
38
- p = self
39
- @ancestors << p until(p = p.parent).nil?
40
-
41
- @ancestors
22
+ @ancestors ||= generate_ancestors
42
23
  end
43
24
 
44
25
  def children
45
- @children ||= if has_children?
46
- menu.select { |item| item.original_type == original_type && item.parent_id == original_id }
47
- else
48
- []
49
- end
26
+ @children ||= generate_children
50
27
  end
51
28
 
52
29
  def descendants
53
- @descendants ||= if has_descendants?
54
- menu.select{|item| item.original_type == original_type && item.lft > lft && item.rgt < rgt}
55
- else
56
- []
57
- end
30
+ @descendants ||= generate_descendants
58
31
  end
59
32
 
60
33
  def has_children?
61
- @has_children ||= (rgt > lft + 1)
34
+ !leaf?
62
35
  end
63
- # really, they're the same.
64
- alias_method :has_descendants?, :has_children?
36
+ alias_method :has_descendants?, :has_children? # really, they're the same.
65
37
 
66
38
  def has_parent?
67
- !parent_id.nil?
39
+ !orphan?
68
40
  end
69
41
 
70
- def inspect
71
- hash = {}
72
-
73
- self.class.attributes.each do |attribute|
74
- hash[attribute] = self[attribute]
75
- end
42
+ def orphan?
43
+ parent_id.nil? || menu.detect{|item| compatible_with?(item) && item.original_id == parent_id}.nil?
44
+ end
76
45
 
77
- hash.inspect
46
+ def leaf?
47
+ @leaf ||= rgt.to_i - lft.to_i == 1
78
48
  end
79
49
 
80
50
  def parent
81
- @parent ||= (menu.detect{|item| item.original_type == original_type && item.original_id == parent_id} if has_parent?)
51
+ @parent ||= ancestors.detect { |item| item.original_id == parent_id }
82
52
  end
83
53
 
84
54
  def siblings
85
55
  @siblings ||= ((has_parent? ? parent.children : menu.roots) - [self])
86
56
  end
87
57
  alias_method :shown_siblings, :siblings
58
+
59
+ def to_refinery_menu_item
60
+ attributes
61
+ end
62
+
63
+ private
64
+ attr_accessor :attributes
65
+ # At present a MenuItem can only have children of the same type to avoid id
66
+ # conflicts like a Blog::Post and a Page both having an id of 42
67
+ def compatible_with?(item)
68
+ original_type == item.original_type
69
+ end
70
+
71
+ def generate_ancestors
72
+ if has_parent?
73
+ menu.select { |item| compatible_with?(item) && item.lft < lft && item.rgt > rgt }
74
+ else
75
+ []
76
+ end
77
+ end
78
+
79
+ def generate_children
80
+ descendants.select { |item| item.parent_id == original_id }
81
+ end
82
+
83
+ def generate_descendants
84
+ if has_descendants?
85
+ menu.select { |item| compatible_with?(item) && item.lft > lft && item.rgt < rgt }
86
+ else
87
+ []
88
+ end
89
+ end
88
90
  end
89
91
  end
@@ -1,10 +1,8 @@
1
1
  module Refinery
2
- module Engines; end;
3
-
4
2
  class Plugin
5
3
 
6
4
  attr_accessor :name, :class_name, :controller, :directory, :url,
7
- :version, :dashboard, :always_allow_access, :menu_match,
5
+ :dashboard, :always_allow_access, :menu_match,
8
6
  :hide_from_menu, :pathname, :plugin_activity
9
7
 
10
8
  def self.register(&block)
@@ -76,6 +74,16 @@ module Refinery
76
74
  end
77
75
  end
78
76
 
77
+ def version
78
+ Refinery.deprecate "Refinery::Plugin#version", :when => '2.2',
79
+ :caller => caller.detect{|c| /#{pathname}/ === c }
80
+ end
81
+
82
+ def version=(*args)
83
+ Refinery.deprecate "Refinery::Plugin#version=", :when => '2.2',
84
+ :caller => caller.detect{|c| /#{pathname}/ === c }
85
+ end
86
+
79
87
  # Make this protected, so that only Plugin.register can use it.
80
88
  protected
81
89
 
@@ -1,5 +1,15 @@
1
+ require 'forwardable'
2
+
1
3
  module Refinery
2
- class Plugins < Array
4
+ class Plugins
5
+ include Enumerable
6
+ extend Forwardable
7
+
8
+ def initialize(*args)
9
+ @plugins = Array.new(*args)
10
+ end
11
+
12
+ def_delegators :@plugins, :<<, :each, :delete_if
3
13
 
4
14
  def find_by_model(model)
5
15
  model = model.constantize if model.is_a? String
@@ -61,5 +71,8 @@ module Refinery
61
71
  end
62
72
  end
63
73
 
74
+ private
75
+
76
+ attr_reader :plugins
64
77
  end
65
78
  end
@@ -1,15 +1,15 @@
1
1
  module Refinery
2
2
  class Version
3
3
  @major = 2
4
- @minor = 0
5
- @tiny = 10
4
+ @minor = 1
5
+ @tiny = 0
6
6
  @build = nil
7
7
 
8
8
  class << self
9
9
  attr_reader :major, :minor, :tiny, :build
10
10
 
11
11
  def to_s
12
- [@major, @minor, @tiny, @build].compact.join '.'
12
+ [@major, @minor, @tiny, @build].compact.join('.')
13
13
  end
14
14
  end
15
15
  end
@@ -1,8 +1,8 @@
1
1
  # Encoding: UTF-8
2
- $:.push File.expand_path('../../core/lib', __FILE__)
3
- require 'refinery/version'
2
+ require File.expand_path('../../core/lib/refinery/version', __FILE__)
4
3
 
5
4
  version = Refinery::Version.to_s
5
+ rails_version = ['>= 3.1.11', '< 3.3'] | 0.upto(11).map{|i| "!= 3.2.#{i}"}
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.platform = Gem::Platform::RUBY
@@ -20,15 +20,16 @@ Gem::Specification.new do |s|
20
20
  s.files = `git ls-files`.split("\n")
21
21
  s.test_files = `git ls-files -- spec/*`.split("\n")
22
22
 
23
- s.add_dependency 'acts_as_indexed', '~> 0.7.7'
24
- s.add_dependency 'friendly_id', '~> 4.0.9'
25
- s.add_dependency 'globalize3', '~> 0.3.0'
23
+ s.required_ruby_version = '>= 1.9.3'
24
+
25
+ s.add_dependency 'refinerycms-i18n', '~> 2.1.0'
26
26
  s.add_dependency 'awesome_nested_set', '~> 2.1.3'
27
- s.add_dependency 'rails', ['>= 3.1.11', '< 3.3'] | 0.upto(11).map{|i| "!= 3.2.#{i}"}
28
- s.add_dependency 'truncate_html', '~> 0.5.5'
27
+ s.add_dependency 'railties', rails_version
28
+ s.add_dependency 'activerecord', rails_version
29
+ s.add_dependency 'actionpack', rails_version
30
+ s.add_dependency 'truncate_html', '~> 0.9'
29
31
  s.add_dependency 'will_paginate', '~> 3.0.2'
30
32
  s.add_dependency 'sass-rails', '~> 3.2.3'
31
- s.add_dependency 'coffee-rails', '~> 3.2.1'
32
- s.add_dependency 'uglifier', '>= 1.0.3'
33
- s.add_dependency 'jquery-rails', '~> 2.0.0'
33
+ s.add_dependency 'jquery-rails', '~> 2.3.0'
34
+ s.add_dependency 'decorators', '~> 1.0.0'
34
35
  end
@@ -0,0 +1,57 @@
1
+ require "spec_helper"
2
+
3
+ module Refinery
4
+ module Admin
5
+ class DummyController < Refinery::AdminController
6
+ def index
7
+ render :nothing => true
8
+ end
9
+ end
10
+ end
11
+ end
12
+
13
+ module Refinery
14
+ module Admin
15
+ describe DummyController do
16
+ context "as refinery user" do
17
+ refinery_login_with :refinery
18
+
19
+ context "with permission" do
20
+ let(:controller_permission) { true }
21
+ it "allows access" do
22
+ controller.should_not_receive :error_404
23
+ get :index
24
+ end
25
+ end
26
+
27
+ context "without permission" do
28
+ let(:controller_permission) { false }
29
+ it "denies access" do
30
+ controller.should_receive :error_404
31
+ get :index
32
+ end
33
+ end
34
+
35
+ describe "force_ssl!" do
36
+ before do
37
+ controller.stub(:require_refinery_users!).and_return(false)
38
+ end
39
+
40
+ it "is false so standard HTTP is used" do
41
+ Refinery::Core.stub(:force_ssl).and_return(false)
42
+ controller.should_not_receive(:redirect_to).with(:protocol => 'https')
43
+
44
+ get :index
45
+ end
46
+
47
+ it "is true so HTTPS is used" do
48
+ Refinery::Core.stub(:force_ssl).and_return(true)
49
+ controller.should_receive(:redirect_to).with(:protocol => 'https')
50
+
51
+ get :index
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -3,15 +3,14 @@ require 'spec_helper'
3
3
  module Refinery
4
4
  module Admin
5
5
  describe CoreController do
6
- login_refinery_user
6
+ refinery_login_with_factory :refinery_user
7
7
 
8
8
  it "updates the plugin positions" do
9
- plugins = refinery_user.plugins.reverse.collect(&:name)
9
+ plugins = logged_in_user.plugins.reverse.map &:name
10
10
 
11
11
  post 'update_plugin_positions', :menu => plugins
12
12
 
13
- refinery_user.plugins.reload
14
- refinery_user.plugins.each_with_index do |plugin, idx|
13
+ logged_in_user.plugins.reload.each_with_index do |plugin, idx|
15
14
  plugin.name.should eql(plugins[idx])
16
15
  end
17
16
  end
@@ -2,27 +2,14 @@ require 'spec_helper'
2
2
 
3
3
  module Refinery
4
4
  describe SitemapController do
5
- login_refinery_user
6
-
7
5
  before (:each) do
8
6
  @request.env['HTTP_ACCEPT'] = 'application/xml'
9
7
  end
10
8
 
11
- it "should show a valid xml answer with i18n enabled" do
12
- ::Refinery.stub(:i18n_enabled?).and_return(true)
13
-
9
+ it "shows a valid xml response" do
14
10
  get :index
15
11
 
16
12
  response.should be_success
17
13
  end
18
-
19
- it "should show a valid xml answer with i18n disabled" do
20
- ::Refinery.stub(:i18n_enabled?).and_return(false)
21
-
22
- get :index
23
-
24
- response.should be_success
25
- end
26
-
27
14
  end
28
15
  end
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  module Refinery
4
4
  describe "custom" do
5
- login_refinery_user
5
+ refinery_login_with :refinery_user
6
6
 
7
7
  context "javascripts" do
8
8
  before do
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  module Refinery
4
4
  describe "dialog" do
5
- login_refinery_user
5
+ refinery_login_with :refinery_user
6
6
 
7
7
  context "links" do
8
8
  it "have iframe src" do
@@ -0,0 +1,55 @@
1
+ require "spec_helper"
2
+
3
+ module Refinery
4
+ describe "Crudify" do
5
+ refinery_login_with :refinery_superuser
6
+
7
+ describe "xhr_paging", :js => true do
8
+ # Refinery::Admin::UsersController specifies :order => 'username ASC' in crudify
9
+ let(:first_user) { User.order('username ASC').first }
10
+ let(:last_user) { User.order('username ASC').last }
11
+ before do
12
+ FactoryGirl.create :user
13
+ Admin::UsersController.should_receive(:xhr_pageable?).
14
+ at_least(1).times.and_return(xhr_pageable)
15
+ User.stub(:per_page).and_return(1)
16
+ end
17
+
18
+ describe 'when set to true' do
19
+ let(:xhr_pageable) { true }
20
+ it 'should perform ajax paging of index' do
21
+ visit refinery.admin_users_path
22
+
23
+ expect(page).to have_selector('li.record', :count => 1)
24
+ expect(page).to have_content(first_user.email)
25
+
26
+ within '.pagination' do
27
+ click_link '2'
28
+ end
29
+
30
+ expect(page.evaluate_script('jQuery.active')).to eq(1)
31
+ expect(page).to have_content(last_user.email)
32
+ end
33
+ end
34
+
35
+ describe 'set to false' do
36
+ let(:xhr_pageable) { false }
37
+ it 'should not perform ajax paging of index' do
38
+ visit refinery.admin_users_path
39
+
40
+ expect(page).to have_selector('li.record', :count => 1)
41
+ expect(page).to have_content(first_user.email)
42
+
43
+ within '.pagination' do
44
+ click_link '2'
45
+ end
46
+
47
+ expect(page.evaluate_script('jQuery.active')).to eq(0)
48
+ expect(page).to have_content(last_user.email)
49
+
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ module Refinery
4
+ describe 'layout' do
5
+ refinery_login_with :refinery_user
6
+
7
+ let(:home_page) do
8
+ FactoryGirl.create :page, :title => 'Home', :link_url => '/'
9
+ end
10
+
11
+ describe 'body' do
12
+ it "id is the page's canonical id" do
13
+ visit home_page.url
14
+
15
+ page.should have_css 'body#home-page'
16
+ end
17
+ end
18
+ end
19
+ end