refinerycms-core 2.0.10 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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