tb_core 1.3.0.beta2 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/admin/core/application.js +0 -3
- data/app/assets/stylesheets/admin/core/application.css.scss +6 -0
- data/app/controllers/admin/application_controller.rb +1 -32
- data/app/controllers/admin/dashboard_controller.rb +1 -17
- data/app/controllers/admin/password_resets_controller.rb +1 -1
- data/app/controllers/password_resets_controller.rb +1 -1
- data/app/controllers/spud/application_controller.rb +3 -21
- data/app/helpers/admin/application_helper.rb +0 -18
- data/app/helpers/spud/application_helper.rb +1 -13
- data/app/models/spud_user_session.rb +5 -0
- data/app/views/admin/dashboard/index.html.erb +1 -1
- data/app/views/admin/users/index.html.erb +3 -17
- data/app/views/layouts/admin/_search.html.erb +13 -0
- data/app/views/layouts/admin/application.html.erb +1 -1
- data/config/routes.rb +0 -4
- data/lib/generators/spud/module_generator.rb +5 -4
- data/lib/generators/spud/templates/views/admin/index.html.erb +2 -16
- data/lib/generators/spud/templates/views/admin/show.html.erb +1 -2
- data/lib/spud_core/configuration.rb +2 -27
- data/lib/spud_core/engine.rb +1 -1
- data/lib/spud_core/errors.rb +4 -2
- data/lib/spud_core/version.rb +1 -1
- data/lib/tb_core/form_builder.rb +3 -4
- data/spec/{support/authlogic_helper.rb → authlogic_helper.rb} +0 -0
- data/spec/controllers/admin/application_controller_spec.rb +8 -12
- data/spec/controllers/admin/dashboard_controller_spec.rb +13 -81
- data/spec/controllers/admin/password_reset_controller_spec.rb +28 -33
- data/spec/controllers/admin/settings_controller_spec.rb +7 -7
- data/spec/controllers/admin/setup_controller_spec.rb +10 -17
- data/spec/controllers/admin/user_sessions_controller_spec.rb +11 -11
- data/spec/controllers/admin/users_controller_spec.rb +40 -65
- data/spec/controllers/spud/application_controller_spec.rb +5 -5
- data/spec/dummy/app/assets/javascripts/admin/application.js +16 -0
- data/spec/dummy/app/assets/javascripts/application.js +16 -13
- data/spec/dummy/app/assets/stylesheets/admin/application.css.scss +3 -0
- data/spec/dummy/app/assets/stylesheets/application.css.scss +5 -0
- data/spec/dummy/app/controllers/application_controller.rb +1 -1
- data/spec/dummy/app/views/layouts/application.html.erb +22 -3
- data/spec/dummy/config/application.rb +5 -0
- data/spec/dummy/config/environments/production.rb +1 -1
- data/spec/dummy/config/environments/test.rb +1 -1
- data/spec/dummy/db/migrate/20141214200804_create_spud_admin_permissions.tb_core.rb +12 -0
- data/spec/dummy/db/migrate/20141214200805_create_spud_users.tb_core.rb +30 -0
- data/spec/dummy/db/migrate/20141214200806_add_time_zone_to_spud_user.tb_core.rb +7 -0
- data/spec/dummy/db/migrate/20141214200807_add_scope_to_spud_admin_permissions.tb_core.rb +7 -0
- data/spec/dummy/db/migrate/20141214200808_create_spud_user_settings.tb_core.rb +12 -0
- data/spec/dummy/db/migrate/20141214200809_create_spud_roles.tb_core.rb +11 -0
- data/spec/dummy/db/migrate/20141214200810_create_spud_permissions.tb_core.rb +11 -0
- data/spec/dummy/db/migrate/20141214200811_create_spud_role_permissions.tb_core.rb +12 -0
- data/spec/dummy/db/migrate/20141214200812_drop_spud_admin_permissions.tb_core.rb +16 -0
- data/spec/dummy/db/schema.rb +47 -47
- data/spec/factories/spud_admin_permission_factories.rb +10 -0
- data/spec/factories/spud_role_factories.rb +9 -0
- data/spec/factories/spud_user_factories.rb +31 -0
- data/spec/helpers/spud/admin/application_helper_spec.rb +11 -119
- data/spec/helpers/spud/application_helper_spec.rb +4 -59
- data/spec/lib/spud_core/configuration_spec.rb +1 -22
- data/spec/models/spud_role_spec.rb +8 -8
- data/spec/models/spud_user_spec.rb +8 -8
- data/spec/rails_helper.rb +72 -0
- data/spec/spec_helper.rb +78 -36
- metadata +93 -118
- data/app/controllers/sitemaps_controller.rb +0 -7
- data/app/views/sitemaps/show.xml.builder +0 -12
- data/spec/controllers/sitemap_controllers_spec.rb +0 -15
- data/spec/dummy/app/assets/stylesheets/application.css +0 -13
- data/spec/integration/admin_setup_spec.rb +0 -8
- data/spec/javascripts/date_picker_spec.js +0 -8
- data/spec/javascripts/support/jasmine.yml +0 -88
- data/spec/javascripts/support/jasmine_helper.rb +0 -11
- data/spec/views/layouts/admin/application.html.erb_spec.rb +0 -20
@@ -1,15 +1,18 @@
|
|
1
|
-
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
-
// listed below.
|
3
|
-
//
|
4
|
-
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
-
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
-
//
|
7
|
-
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
-
// the compiled file.
|
9
|
-
//
|
10
|
-
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
11
|
-
// GO AFTER THE REQUIRES BELOW.
|
12
|
-
//
|
13
1
|
//= require jquery
|
14
2
|
//= require jquery_ujs
|
15
|
-
//=
|
3
|
+
//= require tb_core
|
4
|
+
//= require bootstrap-sprockets
|
5
|
+
//= require_self
|
6
|
+
//= require_directory .
|
7
|
+
|
8
|
+
(function(){
|
9
|
+
|
10
|
+
window.app = {
|
11
|
+
init: function(){
|
12
|
+
// global initializer
|
13
|
+
}
|
14
|
+
};
|
15
|
+
|
16
|
+
$(document).ready(app.init);
|
17
|
+
|
18
|
+
})();
|
@@ -1,14 +1,33 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
-
<
|
5
|
-
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
7
|
+
<meta name="viewport" content="width=device-width"/>
|
8
|
+
<%= tb_page_title() %>
|
9
|
+
<%= stylesheet_link_tag "application", :media => "all" %>
|
6
10
|
<%= javascript_include_tag "application" %>
|
7
11
|
<%= csrf_meta_tags %>
|
12
|
+
<%= yield :head %>
|
8
13
|
</head>
|
9
14
|
<body>
|
15
|
+
<div class="container">
|
10
16
|
|
11
|
-
|
17
|
+
<% if flash[:notice] %>
|
18
|
+
<div class="alert alert-info alert-dismissible">
|
19
|
+
<%= flash[:notice] %> <a href="#" class="flash-remove">X</a>
|
20
|
+
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
21
|
+
</div>
|
22
|
+
<% elsif flash[:error] %>
|
23
|
+
<div class="alert alert-danger alert-dismissible">
|
24
|
+
<%= flash[:error] %> <a href="#" class="flash-remove">X</a>
|
25
|
+
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
12
28
|
|
29
|
+
<%= content_for?(:body) ? yield(:body) : yield %>
|
30
|
+
|
31
|
+
</div>
|
13
32
|
</body>
|
14
33
|
</html>
|
@@ -7,6 +7,11 @@ require "tb_core"
|
|
7
7
|
|
8
8
|
module Dummy
|
9
9
|
class Application < Rails::Application
|
10
|
+
Spud::Core.configure do |config|
|
11
|
+
config.site_name = "Dummy"
|
12
|
+
config.from_address = "no-reply@dummy.com"
|
13
|
+
end
|
14
|
+
|
10
15
|
# Settings in config/environments/* take precedence over those specified here.
|
11
16
|
# Application configuration should go into files in config/initializers
|
12
17
|
# -- all .rb files in that directory are automatically loaded.
|
@@ -9,7 +9,7 @@ Dummy::Application.configure do
|
|
9
9
|
config.action_controller.perform_caching = true
|
10
10
|
|
11
11
|
# Disable Rails's static asset server (Apache or nginx will already do this)
|
12
|
-
config.
|
12
|
+
config.serve_static_files = false
|
13
13
|
|
14
14
|
# Compress JavaScripts and CSS
|
15
15
|
config.assets.compress = true
|
@@ -8,7 +8,7 @@ Dummy::Application.configure do
|
|
8
8
|
config.cache_classes = true
|
9
9
|
|
10
10
|
# Configure static asset server for tests with Cache-Control for performance
|
11
|
-
config.
|
11
|
+
config.serve_static_files = true
|
12
12
|
config.static_cache_control = "public, max-age=3600"
|
13
13
|
|
14
14
|
# Deprecated
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This migration comes from tb_core (originally 20111214161011)
|
2
|
+
class CreateSpudAdminPermissions < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :spud_admin_permissions do |t|
|
5
|
+
t.integer :user_id
|
6
|
+
t.string :name
|
7
|
+
t.boolean :access
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# This migration comes from tb_core (originally 20111214161146)
|
2
|
+
class CreateSpudUsers < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :spud_users do |t|
|
5
|
+
|
6
|
+
t.string :first_name
|
7
|
+
t.string :last_name
|
8
|
+
t.boolean :super_admin
|
9
|
+
t.string :login, :null => false # optional, you can use email instead, or both
|
10
|
+
t.string :email, :null => false # optional, you can use login instead, or both
|
11
|
+
t.string :crypted_password, :null => false # optional, see below
|
12
|
+
t.string :password_salt, :null => false # optional, but highly recommended
|
13
|
+
t.string :persistence_token, :null => false # required
|
14
|
+
t.string :single_access_token, :null => false # optional, see Authlogic::Session::Params
|
15
|
+
t.string :perishable_token, :null => false # optional, see Authlogic::Session::Perishability
|
16
|
+
|
17
|
+
# Magic columns, just like ActiveRecord's created_at and updated_at. These are automatically maintained by Authlogic if they are present.
|
18
|
+
t.integer :login_count, :null => false, :default => 0 # optional, see Authlogic::Session::MagicColumns
|
19
|
+
t.integer :failed_login_count, :null => false, :default => 0 # optional, see Authlogic::Session::MagicColumns
|
20
|
+
t.datetime :last_request_at # optional, see Authlogic::Session::MagicColumns
|
21
|
+
t.datetime :current_login_at # optional, see Authlogic::Session::MagicColumns
|
22
|
+
t.datetime :last_login_at # optional, see Authlogic::Session::MagicColumns
|
23
|
+
t.string :current_login_ip # optional, see Authlogic::Session::MagicColumns
|
24
|
+
t.string :last_login_ip # optional, see Authlogic::Session::MagicColumns
|
25
|
+
t.timestamps
|
26
|
+
end
|
27
|
+
add_index :spud_users,:login
|
28
|
+
add_index :spud_users,:email
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This migration comes from tb_core (originally 20120329174000)
|
2
|
+
class CreateSpudUserSettings < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :spud_user_settings do |t|
|
5
|
+
t.integer :spud_user_id
|
6
|
+
t.string :key
|
7
|
+
t.string :value
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# This migration comes from tb_core (originally 20130620143010)
|
2
|
+
class CreateSpudRoles < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :spud_roles do |t|
|
5
|
+
t.string :name
|
6
|
+
t.timestamps
|
7
|
+
end
|
8
|
+
add_column :spud_users, :spud_role_id, :integer
|
9
|
+
add_index :spud_users, :spud_role_id
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# This migration comes from tb_core (originally 20130620143941)
|
2
|
+
class CreateSpudPermissions < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :spud_permissions do |t|
|
5
|
+
t.string :name, :null => false
|
6
|
+
t.string :tag, :null => false
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
add_index :spud_permissions, :tag, :unique => true
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This migration comes from tb_core (originally 20130620151132)
|
2
|
+
class CreateSpudRolePermissions < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :spud_role_permissions do |t|
|
5
|
+
t.integer :spud_role_id, :null => false
|
6
|
+
t.string :spud_permission_tag, :null => false
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
add_index :spud_role_permissions, :spud_role_id
|
10
|
+
add_index :spud_role_permissions, :spud_permission_tag
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# This migration comes from tb_core (originally 20130620163144)
|
2
|
+
class DropSpudAdminPermissions < ActiveRecord::Migration
|
3
|
+
def up
|
4
|
+
drop_table :spud_admin_permissions
|
5
|
+
end
|
6
|
+
|
7
|
+
def down
|
8
|
+
create_table :spud_admin_permissions do |t|
|
9
|
+
t.integer :user_id
|
10
|
+
t.string :name
|
11
|
+
t.boolean :access
|
12
|
+
t.string :scope
|
13
|
+
t.timestamps
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -9,69 +9,69 @@
|
|
9
9
|
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
10
|
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
11
|
#
|
12
|
-
# It's strongly recommended
|
12
|
+
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:
|
14
|
+
ActiveRecord::Schema.define(version: 20141214200812) do
|
15
15
|
|
16
|
-
create_table "spud_permissions", :
|
17
|
-
t.string "name", :null
|
18
|
-
t.string "tag", :null
|
19
|
-
t.datetime "created_at"
|
20
|
-
t.datetime "updated_at"
|
16
|
+
create_table "spud_permissions", force: true do |t|
|
17
|
+
t.string "name", limit: 255, null: false
|
18
|
+
t.string "tag", limit: 255, null: false
|
19
|
+
t.datetime "created_at"
|
20
|
+
t.datetime "updated_at"
|
21
21
|
end
|
22
22
|
|
23
|
-
add_index "spud_permissions", ["tag"], :
|
23
|
+
add_index "spud_permissions", ["tag"], name: "index_spud_permissions_on_tag", unique: true, using: :btree
|
24
24
|
|
25
|
-
create_table "spud_role_permissions", :
|
26
|
-
t.integer "spud_role_id", :null
|
27
|
-
t.string "spud_permission_tag", :null
|
28
|
-
t.datetime "created_at"
|
29
|
-
t.datetime "updated_at"
|
25
|
+
create_table "spud_role_permissions", force: true do |t|
|
26
|
+
t.integer "spud_role_id", limit: 4, null: false
|
27
|
+
t.string "spud_permission_tag", limit: 255, null: false
|
28
|
+
t.datetime "created_at"
|
29
|
+
t.datetime "updated_at"
|
30
30
|
end
|
31
31
|
|
32
|
-
add_index "spud_role_permissions", ["spud_permission_tag"], :
|
33
|
-
add_index "spud_role_permissions", ["spud_role_id"], :
|
32
|
+
add_index "spud_role_permissions", ["spud_permission_tag"], name: "index_spud_role_permissions_on_spud_permission_tag", using: :btree
|
33
|
+
add_index "spud_role_permissions", ["spud_role_id"], name: "index_spud_role_permissions_on_spud_role_id", using: :btree
|
34
34
|
|
35
|
-
create_table "spud_roles", :
|
36
|
-
t.string "name"
|
37
|
-
t.datetime "created_at"
|
38
|
-
t.datetime "updated_at"
|
35
|
+
create_table "spud_roles", force: true do |t|
|
36
|
+
t.string "name", limit: 255
|
37
|
+
t.datetime "created_at"
|
38
|
+
t.datetime "updated_at"
|
39
39
|
end
|
40
40
|
|
41
|
-
create_table "spud_user_settings", :
|
42
|
-
t.integer "spud_user_id"
|
43
|
-
t.string "key"
|
44
|
-
t.string "value"
|
45
|
-
t.datetime "created_at"
|
46
|
-
t.datetime "updated_at"
|
41
|
+
create_table "spud_user_settings", force: true do |t|
|
42
|
+
t.integer "spud_user_id", limit: 4
|
43
|
+
t.string "key", limit: 255
|
44
|
+
t.string "value", limit: 255
|
45
|
+
t.datetime "created_at"
|
46
|
+
t.datetime "updated_at"
|
47
47
|
end
|
48
48
|
|
49
|
-
create_table "spud_users", :
|
50
|
-
t.string "first_name"
|
51
|
-
t.string "last_name"
|
52
|
-
t.boolean "super_admin"
|
53
|
-
t.string "login",
|
54
|
-
t.string "email",
|
55
|
-
t.string "crypted_password",
|
56
|
-
t.string "password_salt",
|
57
|
-
t.string "persistence_token",
|
58
|
-
t.string "single_access_token",
|
59
|
-
t.string "perishable_token",
|
60
|
-
t.integer "login_count", :default
|
61
|
-
t.integer "failed_login_count", :default
|
49
|
+
create_table "spud_users", force: true do |t|
|
50
|
+
t.string "first_name", limit: 255
|
51
|
+
t.string "last_name", limit: 255
|
52
|
+
t.boolean "super_admin", limit: 1
|
53
|
+
t.string "login", limit: 255, null: false
|
54
|
+
t.string "email", limit: 255, null: false
|
55
|
+
t.string "crypted_password", limit: 255, null: false
|
56
|
+
t.string "password_salt", limit: 255, null: false
|
57
|
+
t.string "persistence_token", limit: 255, null: false
|
58
|
+
t.string "single_access_token", limit: 255, null: false
|
59
|
+
t.string "perishable_token", limit: 255, null: false
|
60
|
+
t.integer "login_count", limit: 4, default: 0, null: false
|
61
|
+
t.integer "failed_login_count", limit: 4, default: 0, null: false
|
62
62
|
t.datetime "last_request_at"
|
63
63
|
t.datetime "current_login_at"
|
64
64
|
t.datetime "last_login_at"
|
65
|
-
t.string "current_login_ip"
|
66
|
-
t.string "last_login_ip"
|
67
|
-
t.datetime "created_at"
|
68
|
-
t.datetime "updated_at"
|
69
|
-
t.string "time_zone"
|
70
|
-
t.integer "spud_role_id"
|
65
|
+
t.string "current_login_ip", limit: 255
|
66
|
+
t.string "last_login_ip", limit: 255
|
67
|
+
t.datetime "created_at"
|
68
|
+
t.datetime "updated_at"
|
69
|
+
t.string "time_zone", limit: 255
|
70
|
+
t.integer "spud_role_id", limit: 4
|
71
71
|
end
|
72
72
|
|
73
|
-
add_index "spud_users", ["email"], :
|
74
|
-
add_index "spud_users", ["login"], :
|
75
|
-
add_index "spud_users", ["spud_role_id"], :
|
73
|
+
add_index "spud_users", ["email"], name: "index_spud_users_on_email", using: :btree
|
74
|
+
add_index "spud_users", ["login"], name: "index_spud_users_on_login", using: :btree
|
75
|
+
add_index "spud_users", ["spud_role_id"], name: "index_spud_users_on_spud_role_id", using: :btree
|
76
76
|
|
77
77
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
FactoryGirl.define do
|
2
|
+
sequence :first_name do |n|
|
3
|
+
"John#{n}"
|
4
|
+
end
|
5
|
+
|
6
|
+
sequence :last_name do |n|
|
7
|
+
"Doe#{n}"
|
8
|
+
end
|
9
|
+
|
10
|
+
sequence :login do |n|
|
11
|
+
"john#{n}doe#{n}"
|
12
|
+
end
|
13
|
+
|
14
|
+
sequence :email do |n|
|
15
|
+
"john#{n}doe#{n}@email.com"
|
16
|
+
end
|
17
|
+
|
18
|
+
sequence :single_access_token do |n|
|
19
|
+
"k3cF#{n}"
|
20
|
+
end
|
21
|
+
|
22
|
+
factory :spud_user do
|
23
|
+
first_name { FactoryGirl.generate(:first_name) }
|
24
|
+
last_name { FactoryGirl.generate(:last_name) }
|
25
|
+
login { FactoryGirl.generate(:login) }
|
26
|
+
email { FactoryGirl.generate(:email) }
|
27
|
+
password "password"
|
28
|
+
password_confirmation "password"
|
29
|
+
single_access_token { FactoryGirl.generate(:single_access_token) }
|
30
|
+
end
|
31
|
+
end
|
@@ -1,150 +1,42 @@
|
|
1
|
-
require '
|
1
|
+
require 'rails_helper'
|
2
2
|
|
3
|
-
describe Admin::ApplicationHelper do
|
4
|
-
describe
|
3
|
+
describe Admin::ApplicationHelper, :type => :helper do
|
4
|
+
describe '#timestamp' do
|
5
5
|
it "should return 'Never' if a timedate is not given" do
|
6
|
-
timestamp.
|
6
|
+
expect(timestamp).to eq('Never')
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should reutrn 'x ago' when the supplied timestamp is less than a week ago" do
|
10
|
-
timestamp(6.days.ago).
|
10
|
+
expect(timestamp(6.days.ago)).to match('.*? ago')
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should not return 'x at x' when the timestamp is less than a week ago" do
|
14
|
-
timestamp(5.minutes.ago).
|
14
|
+
expect(timestamp(5.minutes.ago)).to_not match(/.*? at .*/)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should return 'x at x' when the timestamp is more than a week ago" do
|
18
|
-
timestamp(7.days.ago).
|
18
|
+
expect(timestamp(7.days.ago)).to match(/.*? at .*/)
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should not reutrn 'x ago' when the supplied timestamp is more than a week ago" do
|
22
|
-
timestamp(8.days.ago).
|
22
|
+
expect(timestamp(8.days.ago)).to_not match('.*? ago')
|
23
23
|
end
|
24
24
|
|
25
25
|
end
|
26
26
|
|
27
|
-
describe
|
28
|
-
let(:core_site_name) { "Spud" }
|
29
|
-
let(:multi_site_name) { "Spud2" }
|
30
|
-
before(:each) do
|
31
|
-
Spud::Core.stubs(:site_name).returns(core_site_name)
|
32
|
-
end
|
33
|
-
|
34
|
-
context "with multisite mode enabled" do
|
35
|
-
before(:each) do
|
36
|
-
Spud::Core.stubs(:multisite_mode_enabled).returns(true)
|
37
|
-
end
|
38
|
-
|
39
|
-
context "with a site selected" do
|
40
|
-
before(:each) do
|
41
|
-
controller.stubs(:session).returns({:admin_site => 1})
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should return the spud core site name if the selected site's name is not configured" do
|
45
|
-
Spud::Core.stubs(:multisite_config).returns([{:site_id => 2, :site_name => multi_site_name}])
|
46
|
-
helper.current_admin_site_name.should == core_site_name
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should return the selected site name if the select site's name is configured" do
|
50
|
-
Spud::Core.stubs(:multisite_config).returns([{:site_id => 1, :site_name => multi_site_name}])
|
51
|
-
helper.current_admin_site_name.should == multi_site_name
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
context "without a site selected" do
|
56
|
-
before(:each) do
|
57
|
-
controller.stubs(:session).returns({:admin_site => nil})
|
58
|
-
end
|
59
|
-
|
60
|
-
it "should return the core's site name" do
|
61
|
-
helper.current_admin_site_name.should == core_site_name
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
context "with multisite mode disabled" do
|
67
|
-
before(:each) do
|
68
|
-
Spud::Core.stubs(:multisite_mode_enabled).returns(false)
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should return the core's site name" do
|
72
|
-
helper.current_admin_site_name.should == core_site_name
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
describe :header_style do
|
78
|
-
let(:style_string) { 'Big' }
|
79
|
-
|
80
|
-
context "with multisite mode enabled" do
|
81
|
-
before(:each) do
|
82
|
-
Spud::Core.stubs(:multisite_mode_enabled).returns(true)
|
83
|
-
end
|
84
|
-
|
85
|
-
context "and an admin site is selected" do
|
86
|
-
before(:each) do
|
87
|
-
controller.stubs(:session).returns({:admin_site => 1})
|
88
|
-
end
|
89
|
-
|
90
|
-
it "should return a style string if the site is configured" do
|
91
|
-
Spud::Core.stubs(:multisite_config).returns([{:site_id => 1, :header_style => style_string}])
|
92
|
-
helper.header_style.should == style_string
|
93
|
-
end
|
94
|
-
|
95
|
-
it "should return an empty string if the site is not configured" do
|
96
|
-
Spud::Core.stubs(:multisite_config).returns([])
|
97
|
-
helper.header_style.should == ''
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
context "and an admin site is not selected" do
|
102
|
-
before(:each) do
|
103
|
-
controller.stubs(:session).returns({:admin_site => nil})
|
104
|
-
end
|
105
|
-
|
106
|
-
it "should return an empty string" do
|
107
|
-
helper.header_style.should == ''
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
context "with multisite mode disabled" do
|
113
|
-
before(:each) do
|
114
|
-
Spud::Core.stubs(:multisite_mode_enabled).returns(false)
|
115
|
-
end
|
116
|
-
|
117
|
-
it "should return an empty string" do
|
118
|
-
helper.header_style.should == ''
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
describe :tb_form_errors do
|
27
|
+
describe '#tb_form_errors' do
|
124
28
|
before(:each) do
|
125
29
|
@user = FactoryGirl.create(:spud_user)
|
126
30
|
end
|
127
31
|
|
128
32
|
it "should return blank when no errors exist" do
|
129
|
-
helper.tb_form_errors(@user).
|
130
|
-
end
|
131
|
-
|
132
|
-
it "should display 1 error when the subject has 2 errors" do
|
133
|
-
@user.errors[:base] << "error 1"
|
134
|
-
helper.tb_form_errors(@user).should include("1 error")
|
135
|
-
end
|
136
|
-
|
137
|
-
(1..3).each do |error_count|
|
138
|
-
it "should display #{error_count} errors when the subject has #{error_count} errors" do
|
139
|
-
error_count.times {|x| @user.errors[:base] << "error #{x}" }
|
140
|
-
helper.tb_form_errors(@user).should include("#{@user.errors[:base].size} error")
|
141
|
-
end
|
33
|
+
expect(helper.tb_form_errors(@user)).to be_blank
|
142
34
|
end
|
143
35
|
|
144
36
|
it "should display the error" do
|
145
37
|
error = "You're invalid"
|
146
38
|
@user.errors[:base] << error
|
147
|
-
helper.tb_form_errors(@user).
|
39
|
+
expect(helper.tb_form_errors(@user)).to include(error)
|
148
40
|
end
|
149
41
|
end
|
150
42
|
end
|
@@ -1,66 +1,11 @@
|
|
1
|
-
require '
|
1
|
+
require 'rails_helper'
|
2
2
|
|
3
|
-
describe Spud::ApplicationHelper do
|
4
|
-
|
3
|
+
describe Spud::ApplicationHelper, :type => :helper do
|
4
|
+
|
5
|
+
before :each do
|
5
6
|
activate_authlogic
|
6
7
|
@user = FactoryGirl.create(:spud_user)
|
7
8
|
@session = SpudUserSession.create(@user)
|
8
9
|
end
|
9
10
|
|
10
|
-
describe :current_site_name do
|
11
|
-
|
12
|
-
it "should return config site name if multisite is disabled" do
|
13
|
-
Spud::Core.configure do |config|
|
14
|
-
config.multisite_mode_enabled = false
|
15
|
-
config.site_name = "Test Site"
|
16
|
-
config.multisite_config = []
|
17
|
-
end
|
18
|
-
helper.current_site_name.should == 'Test Site'
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should return config site name if multisite is enabled but multisite name is blank" do
|
22
|
-
Spud::Core.configure do |config|
|
23
|
-
config.site_name = "Test Site"
|
24
|
-
config.multisite_mode_enabled = true
|
25
|
-
config.multisite_config = []
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
helper.current_site_name.should == 'Test Site'
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should return multisite name if multisite is enabled" do
|
33
|
-
Spud::Core.configure do |config|
|
34
|
-
config.site_name = "Test Site"
|
35
|
-
config.multisite_mode_enabled = true
|
36
|
-
config.multisite_config += [{:hosts => ["test.host"], :site_name =>"Site B", :site_id => 1}]
|
37
|
-
end
|
38
|
-
|
39
|
-
helper.current_site_name.should == 'Site B'
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe :current_site_id do
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
it "should return the default site id if multisite is disabled" do
|
48
|
-
Spud::Core.configure do |config|
|
49
|
-
config.site_id = 0
|
50
|
-
config.multisite_mode_enabled = false
|
51
|
-
config.multisite_config = []
|
52
|
-
end
|
53
|
-
helper.current_site_id.should == 0
|
54
|
-
end
|
55
|
-
|
56
|
-
it "should return the current site id if multisite is enabled" do
|
57
|
-
Spud::Core.configure do |config|
|
58
|
-
config.multisite_mode_enabled = true
|
59
|
-
config.multisite_config = [{:hosts => ["test.host"], :site_name =>"Site B", :site_id => 1}]
|
60
|
-
end
|
61
|
-
# @controller.request = request
|
62
|
-
helper.current_site_id.should == 1
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
66
11
|
end
|