edgarj 0.01.21 → 0.01.22
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.
- checksums.yaml +4 -4
- data/app/{models → helpers}/edgarj/drawer.rb +0 -0
- data/app/{models → helpers}/edgarj/drawer/base.rb +7 -43
- data/app/{models → helpers}/edgarj/drawer/normal.rb +0 -0
- data/app/{models → helpers}/edgarj/drawer/popup.rb +1 -3
- data/app/helpers/edgarj/list_drawer.rb +45 -0
- data/lib/edgarj/version.rb +1 -1
- data/lib/generators/edgarj/popup_scaffold/templates/functional_test.rb +10 -0
- data/test/dummy/test/functional/authors_popup_controller_test.rb +205 -0
- data/test/support/edgarj/controller_supporter.rb +10 -0
- metadata +7 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b0eda9922434a94f760aad1bd2abc1a1dfc0f916
|
|
4
|
+
data.tar.gz: 7f6c4d0e0184a2f8744558a4ef0bbf965364c63b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2fd098c60063a214c6af73a74aabae7cd36018560edbc77aa86bb26dd7100163d6a82d92540a5ef5e1d88a93e1919fba026339954a96f2d5d6d96132ca3eee1b
|
|
7
|
+
data.tar.gz: 937b28340f7e2ce9477a2c032114fc53a1dc5d43193d88c8bf1187a2d6bc7f1f532a4e2a6d514b127ae4c00efc848ae8105771e796dc97655232808d7458b9c8
|
|
File without changes
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
module Edgarj
|
|
2
2
|
module Drawer
|
|
3
3
|
# 'Mediator' to draw list and form of the model on the view.
|
|
4
|
+
#
|
|
5
|
+
# This collaborate with the following sub classes:
|
|
6
|
+
# Edgarj::ListDrawer::Normal:: for list
|
|
7
|
+
# Edgarj::FormDrawer::Base:: for data entry form
|
|
8
|
+
# Edgarj::FormDrawer::Search:: for search form
|
|
4
9
|
class Base
|
|
5
|
-
attr_accessor :vc
|
|
10
|
+
attr_accessor :vc, :params, :model, :page_info
|
|
6
11
|
|
|
7
12
|
# * options
|
|
8
13
|
# * list_drawer_options - options for Edgarj::ListDrawer::Normal
|
|
@@ -109,45 +114,6 @@ module Edgarj
|
|
|
109
114
|
id_target: popup_field.id_target)
|
|
110
115
|
end
|
|
111
116
|
|
|
112
|
-
# draw sort link on list column header
|
|
113
|
-
#
|
|
114
|
-
# === INPUTS
|
|
115
|
-
# col:: column data
|
|
116
|
-
# options:: options to url_for
|
|
117
|
-
def draw_sort(col, options={})
|
|
118
|
-
label = @model.human_attribute_name(col.name)
|
|
119
|
-
dir = 'asc'
|
|
120
|
-
if @page_info.order_by == fullname(col)
|
|
121
|
-
# toggle direction
|
|
122
|
-
if @page_info.dir == 'asc' || @page_info.dir.blank?
|
|
123
|
-
label += '▲'
|
|
124
|
-
dir = 'desc'
|
|
125
|
-
else
|
|
126
|
-
label += '▼'
|
|
127
|
-
end
|
|
128
|
-
end
|
|
129
|
-
@vc.link_to(label,
|
|
130
|
-
{
|
|
131
|
-
:controller => @params[:controller],
|
|
132
|
-
:action => 'page_info_save',
|
|
133
|
-
:id => @page_info.id,
|
|
134
|
-
'edgarj_page_info[order_by]' => fullname(col),
|
|
135
|
-
'edgarj_page_info[dir]' => dir
|
|
136
|
-
}.merge(options),
|
|
137
|
-
:remote => true,
|
|
138
|
-
:method => :put)
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
# draw list column header for both usual list and popup list
|
|
142
|
-
def draw_list_column_header(col, options={})
|
|
143
|
-
parent = @model.belongs_to_AR(col)
|
|
144
|
-
if parent then
|
|
145
|
-
@vc.draw_belongs_to_label_sub(@model, col.name, parent)
|
|
146
|
-
else
|
|
147
|
-
draw_sort(col, options)
|
|
148
|
-
end
|
|
149
|
-
end
|
|
150
|
-
|
|
151
117
|
def list_drawer_class
|
|
152
118
|
Edgarj::ListDrawer::Normal
|
|
153
119
|
end
|
|
@@ -162,9 +128,7 @@ module Edgarj
|
|
|
162
128
|
@vc.content_tag(:tr) do
|
|
163
129
|
''.html_safe.tap do |result|
|
|
164
130
|
for col in columns_for(list_columns) do
|
|
165
|
-
result <<
|
|
166
|
-
draw_list_column_header(col)
|
|
167
|
-
end
|
|
131
|
+
result << d.draw_column_header(col)
|
|
168
132
|
end
|
|
169
133
|
end
|
|
170
134
|
end +
|
|
File without changes
|
|
@@ -19,9 +19,7 @@ module Edgarj
|
|
|
19
19
|
@vc.content_tag(:tr) do
|
|
20
20
|
''.html_safe.tap do |result|
|
|
21
21
|
for col in columns_for(list_columns) do
|
|
22
|
-
result <<
|
|
23
|
-
draw_list_column_header(col, id_target: @params[:id_target])
|
|
24
|
-
end
|
|
22
|
+
result << d.draw_column_header(col, id_target: @params[:id_target])
|
|
25
23
|
end
|
|
26
24
|
end
|
|
27
25
|
end +
|
|
@@ -8,6 +8,7 @@ module Edgarj
|
|
|
8
8
|
class Base
|
|
9
9
|
include ERB::Util
|
|
10
10
|
|
|
11
|
+
# * drawer - Edgarj::Drawer::Base object
|
|
11
12
|
# * options
|
|
12
13
|
# * namespace - namespace for path (ex: :admin)
|
|
13
14
|
#
|
|
@@ -22,6 +23,12 @@ module Edgarj
|
|
|
22
23
|
@belongs_to_link = false # doesn't make link on belongs_to
|
|
23
24
|
end
|
|
24
25
|
|
|
26
|
+
def draw_column_header(col, options={})
|
|
27
|
+
@vc.content_tag(:th) do
|
|
28
|
+
draw_column_header_sub(col, options)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
25
32
|
def draw_column(rec, col)
|
|
26
33
|
@parent_rec = rec.belongs_to_AR(col)
|
|
27
34
|
@vc.content_tag(:td, td_options(rec, col)) do
|
|
@@ -85,6 +92,44 @@ module Edgarj
|
|
|
85
92
|
s.join('')
|
|
86
93
|
end
|
|
87
94
|
|
|
95
|
+
# draw sort link on list column header
|
|
96
|
+
#
|
|
97
|
+
# === INPUTS
|
|
98
|
+
# col:: column data
|
|
99
|
+
# options:: options to url_for
|
|
100
|
+
def draw_sort(col, options={})
|
|
101
|
+
label = @drawer.model.human_attribute_name(col.name)
|
|
102
|
+
dir = 'asc'
|
|
103
|
+
if @drawer.page_info.order_by == @drawer.fullname(col)
|
|
104
|
+
# toggle direction
|
|
105
|
+
if @drawer.page_info.dir == 'asc' || @drawer.page_info.dir.blank?
|
|
106
|
+
label += '▲'
|
|
107
|
+
dir = 'desc'
|
|
108
|
+
else
|
|
109
|
+
label += '▼'
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
@vc.link_to(label,
|
|
113
|
+
{
|
|
114
|
+
:controller => @drawer.params[:controller],
|
|
115
|
+
:action => 'page_info_save',
|
|
116
|
+
:id => @drawer.page_info.id,
|
|
117
|
+
'edgarj_page_info[order_by]' => @drawer.fullname(col),
|
|
118
|
+
'edgarj_page_info[dir]' => dir
|
|
119
|
+
}.merge(options),
|
|
120
|
+
:remote => true,
|
|
121
|
+
:method => :put)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# draw list column header for both usual list and popup list
|
|
125
|
+
def draw_column_header_sub(col, options={})
|
|
126
|
+
parent = @drawer.model.belongs_to_AR(col)
|
|
127
|
+
if parent then
|
|
128
|
+
@vc.draw_belongs_to_label_sub(@drawer.model, col.name, parent)
|
|
129
|
+
else
|
|
130
|
+
draw_sort(col, options)
|
|
131
|
+
end
|
|
132
|
+
end
|
|
88
133
|
|
|
89
134
|
# draw rec.col other than 'belongs_to'
|
|
90
135
|
# 1. DateTime format is YYYY-MM-DD hh:mm:ss.
|
data/lib/edgarj/version.rb
CHANGED
|
@@ -13,6 +13,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
13
13
|
id_target: "PARENT_MODEL_DOM_ID"
|
|
14
14
|
assert_response :success
|
|
15
15
|
assert_not_nil assigns(:list)
|
|
16
|
+
assert_no_app_error
|
|
16
17
|
end
|
|
17
18
|
|
|
18
19
|
should 'paginate' do
|
|
@@ -20,6 +21,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
20
21
|
id_target: "PARENT_MODEL_DOM_ID"
|
|
21
22
|
assert_response :success
|
|
22
23
|
assert_not_nil assigns(:list)
|
|
24
|
+
assert_no_app_error
|
|
23
25
|
end
|
|
24
26
|
|
|
25
27
|
should 'sort' do
|
|
@@ -33,6 +35,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
33
35
|
assert_not_nil assigns(:list)
|
|
34
36
|
assert_equal 'asc', assigns(:page_info).dir
|
|
35
37
|
assert_equal 'created_at', assigns(:page_info).order_by
|
|
38
|
+
assert_no_app_error
|
|
36
39
|
end
|
|
37
40
|
|
|
38
41
|
should 'search' do
|
|
@@ -40,6 +43,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
40
43
|
id_target: "PARENT_MODEL_DOM_ID"
|
|
41
44
|
assert_response :success
|
|
42
45
|
assert assigns(:list).count >= 1
|
|
46
|
+
assert_no_app_error
|
|
43
47
|
end
|
|
44
48
|
end
|
|
45
49
|
|
|
@@ -62,6 +66,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
62
66
|
id_target: "PARENT_MODEL_DOM_ID"
|
|
63
67
|
assert_response :success
|
|
64
68
|
assert_not_nil assigns(:list)
|
|
69
|
+
assert_no_app_error
|
|
65
70
|
end
|
|
66
71
|
|
|
67
72
|
should 'paginate' do
|
|
@@ -70,6 +75,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
70
75
|
id_target: "PARENT_MODEL_DOM_ID"
|
|
71
76
|
assert_response :success
|
|
72
77
|
assert_not_nil assigns(:list)
|
|
78
|
+
assert_no_app_error
|
|
73
79
|
end
|
|
74
80
|
|
|
75
81
|
should 'sort' do
|
|
@@ -84,6 +90,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
84
90
|
assert_not_nil assigns(:list)
|
|
85
91
|
assert_equal 'asc', assigns(:page_info).dir
|
|
86
92
|
assert_equal 'created_at', assigns(:page_info).order_by
|
|
93
|
+
assert_no_app_error
|
|
87
94
|
end
|
|
88
95
|
|
|
89
96
|
should 'search' do
|
|
@@ -92,6 +99,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
92
99
|
id_target: "PARENT_MODEL_DOM_ID"
|
|
93
100
|
assert_response :success
|
|
94
101
|
assert assigns(:list).count >= 1
|
|
102
|
+
assert_no_app_error
|
|
95
103
|
end
|
|
96
104
|
end
|
|
97
105
|
|
|
@@ -114,6 +122,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
114
122
|
id_target: "PARENT_MODEL_DOM_ID"
|
|
115
123
|
assert_response :success
|
|
116
124
|
assert_equal 1, assigns(:list).count
|
|
125
|
+
assert_no_app_error
|
|
117
126
|
end
|
|
118
127
|
|
|
119
128
|
should 'not search since key is out-of-scope' do
|
|
@@ -122,6 +131,7 @@ class <%= controller_class_name %>PopupControllerTest < ActionController::TestCa
|
|
|
122
131
|
id_target: "PARENT_MODEL_DOM_ID"
|
|
123
132
|
assert_response :success
|
|
124
133
|
assert_equal 0, assigns(:list).count
|
|
134
|
+
assert_no_app_error
|
|
125
135
|
end
|
|
126
136
|
end
|
|
127
137
|
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class AuthorsPopupControllerTest < ActionController::TestCase
|
|
4
|
+
context 'root user' do
|
|
5
|
+
setup do
|
|
6
|
+
login_as(:root)
|
|
7
|
+
@pi = create_page_info(@sssn, 'authors', Author)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
should 'get index' do
|
|
11
|
+
xhr :get, :index,
|
|
12
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
13
|
+
assert_response :success
|
|
14
|
+
assert_not_nil assigns(:list)
|
|
15
|
+
assert_no_app_error
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
should 'paginate' do
|
|
19
|
+
xhr :get, :index, page: 2,
|
|
20
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
21
|
+
assert_response :success
|
|
22
|
+
assert_not_nil assigns(:list)
|
|
23
|
+
assert_no_app_error
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
should 'sort' do
|
|
27
|
+
xhr :put, :page_info_save, id: @pi.id,
|
|
28
|
+
id_target: "PARENT_MODEL_DOM_ID",
|
|
29
|
+
edgarj_page_info: {
|
|
30
|
+
dir: 'asc',
|
|
31
|
+
order_by: 'created_at'
|
|
32
|
+
}
|
|
33
|
+
assert_response :success
|
|
34
|
+
assert_not_nil assigns(:list)
|
|
35
|
+
assert_equal 'asc', assigns(:page_info).dir
|
|
36
|
+
assert_equal 'created_at', assigns(:page_info).order_by
|
|
37
|
+
assert_no_app_error
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
should 'search' do
|
|
41
|
+
xhr :get, :search, edgarj_search_form: {},
|
|
42
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
43
|
+
assert_response :success
|
|
44
|
+
assert assigns(:list).count >= 1
|
|
45
|
+
assert_no_app_error
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# All of tests in this context is skipped because it is required
|
|
50
|
+
# to prepare read-only user.
|
|
51
|
+
# When complete the preparation, delete the skip lines.
|
|
52
|
+
context 'read-only user' do
|
|
53
|
+
setup do
|
|
54
|
+
# prepare fixtures of model_permissions, user_groups, and
|
|
55
|
+
# user_group_users for read-only user of the
|
|
56
|
+
# AuthorsController and login by him/her.
|
|
57
|
+
#
|
|
58
|
+
login_as(:author_reader)
|
|
59
|
+
@pi = create_page_info(@sssn, 'authors', Author)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
should 'get index' do
|
|
63
|
+
skip 'get index'
|
|
64
|
+
xhr :get, :index,
|
|
65
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
66
|
+
assert_response :success
|
|
67
|
+
assert_not_nil assigns(:list)
|
|
68
|
+
assert_no_app_error
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
should 'paginate' do
|
|
72
|
+
skip 'get paginate'
|
|
73
|
+
xhr :get, :index, page: 2,
|
|
74
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
75
|
+
assert_response :success
|
|
76
|
+
assert_not_nil assigns(:list)
|
|
77
|
+
assert_no_app_error
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
should 'sort' do
|
|
81
|
+
skip 'sort'
|
|
82
|
+
xhr :put, :page_info_save, id: @pi.id,
|
|
83
|
+
id_target: "PARENT_MODEL_DOM_ID",
|
|
84
|
+
edgarj_page_info: {
|
|
85
|
+
dir: 'asc',
|
|
86
|
+
order_by: 'created_at'
|
|
87
|
+
}
|
|
88
|
+
assert_response :success
|
|
89
|
+
assert_not_nil assigns(:list)
|
|
90
|
+
assert_equal 'asc', assigns(:page_info).dir
|
|
91
|
+
assert_equal 'created_at', assigns(:page_info).order_by
|
|
92
|
+
assert_no_app_error
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
should 'search' do
|
|
96
|
+
skip 'search'
|
|
97
|
+
xhr :get, :search, edgarj_search_form: {},
|
|
98
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
99
|
+
assert_response :success
|
|
100
|
+
assert assigns(:list).count >= 1
|
|
101
|
+
assert_no_app_error
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# All of tests in this context is skipped because it is required
|
|
106
|
+
# to prepare 'permitted but user_scoped' user.
|
|
107
|
+
# When complete the preparation, delete the skip lines.
|
|
108
|
+
context 'permitted and user_scoped user' do
|
|
109
|
+
setup do
|
|
110
|
+
# prepare fixtures of model_permissions, user_groups, and
|
|
111
|
+
# user_group_users for read-only user of the
|
|
112
|
+
#login_as(:permitted_n_user_scoped_on_authors)
|
|
113
|
+
#@pi = create_page_info(@sssn, 'authors', Author)
|
|
114
|
+
@author = authors(:m_polanyi)
|
|
115
|
+
@author_scoped_out = authors(:t_nangou)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
should 'search since role and user_scoped satisfy' do
|
|
119
|
+
skip 'search since role and user_scoped satisfy'
|
|
120
|
+
xhr :get, :search, edgarj_search_form: {col: 'id', val: @author.id},
|
|
121
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
122
|
+
assert_response :success
|
|
123
|
+
assert_equal 1, assigns(:list).count
|
|
124
|
+
assert_no_app_error
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
should 'not search since key is out-of-scope' do
|
|
128
|
+
skip 'not search since key is out-of-scope'
|
|
129
|
+
xhr :get, :search, edgarj_search_form: {col: 'id', val: @author_scoped_out.id},
|
|
130
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
131
|
+
assert_response :success
|
|
132
|
+
assert_equal 0, assigns(:list).count
|
|
133
|
+
assert_no_app_error
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
context 'not-permitted user' do
|
|
138
|
+
setup do
|
|
139
|
+
login_as(:not_permitted)
|
|
140
|
+
@pi = create_page_info(@sssn, 'authors', Author)
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
should 'not get index' do
|
|
144
|
+
xhr :get, :index,
|
|
145
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
146
|
+
assert_template 'message_popup'
|
|
147
|
+
assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
should 'not paginate' do
|
|
151
|
+
xhr :get, :index, page: 2,
|
|
152
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
153
|
+
assert_template 'message_popup'
|
|
154
|
+
assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
should 'not sort' do
|
|
158
|
+
xhr :put, :page_info_save, id: @pi.id,
|
|
159
|
+
id_target: "PARENT_MODEL_DOM_ID",
|
|
160
|
+
edgarj_page_info: {
|
|
161
|
+
dir: 'asc',
|
|
162
|
+
order_by: 'created_at'
|
|
163
|
+
}
|
|
164
|
+
assert_template 'message_popup'
|
|
165
|
+
assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
should 'not search' do
|
|
169
|
+
xhr :get, :search, edgarj_search_form: {},
|
|
170
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
171
|
+
assert_template 'message_popup'
|
|
172
|
+
assert_equal I18n.t('edgarj.default.permission_no'), flash[:error]
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
context 'not-login' do
|
|
177
|
+
should 'not get index' do
|
|
178
|
+
xhr :get, :index,
|
|
179
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
180
|
+
assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
should 'not paginate' do
|
|
184
|
+
xhr :get, :index, page: 2,
|
|
185
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
186
|
+
assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
should 'not sort' do
|
|
190
|
+
xhr :put, :page_info_save, id: 0,
|
|
191
|
+
id_target: "PARENT_MODEL_DOM_ID",
|
|
192
|
+
edgarj_page_info: {
|
|
193
|
+
dir: 'asc',
|
|
194
|
+
order_by: 'created_at'
|
|
195
|
+
}
|
|
196
|
+
assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
should 'not search' do
|
|
200
|
+
xhr :get, :search, edgarj_search_form: {},
|
|
201
|
+
id_target: "PARENT_MODEL_DOM_ID"
|
|
202
|
+
assert_equal I18n.t('edgarj.default.login_failed'), flash[:error]
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
end
|
|
@@ -20,4 +20,14 @@ module Edgarj::ControllerSupporter
|
|
|
20
20
|
pi.save!
|
|
21
21
|
pi
|
|
22
22
|
end
|
|
23
|
+
|
|
24
|
+
# error is raised during controller-action
|
|
25
|
+
def assert_app_error(format = :html)
|
|
26
|
+
assert_not_nil flash[:error]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# error is not raised during controller-action
|
|
30
|
+
def assert_no_app_error
|
|
31
|
+
assert_nil flash[:error]
|
|
32
|
+
end
|
|
23
33
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: edgarj
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.01.
|
|
4
|
+
version: 0.01.22
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fuminori Ido
|
|
@@ -213,6 +213,10 @@ files:
|
|
|
213
213
|
- app/controllers/edgarj/user_groups_popup_controller.rb
|
|
214
214
|
- app/helpers/edgarj/assoc_helper.rb
|
|
215
215
|
- app/helpers/edgarj/common_helper.rb
|
|
216
|
+
- app/helpers/edgarj/drawer.rb
|
|
217
|
+
- app/helpers/edgarj/drawer/base.rb
|
|
218
|
+
- app/helpers/edgarj/drawer/normal.rb
|
|
219
|
+
- app/helpers/edgarj/drawer/popup.rb
|
|
216
220
|
- app/helpers/edgarj/edgarj_helper.rb
|
|
217
221
|
- app/helpers/edgarj/field_helper.rb
|
|
218
222
|
- app/helpers/edgarj/form_drawer.rb
|
|
@@ -226,10 +230,6 @@ files:
|
|
|
226
230
|
- app/helpers/edgarj/user_groups_helper.rb
|
|
227
231
|
- app/helpers/edgarj/user_groups_popup_helper.rb
|
|
228
232
|
- app/models/edgarj.rb
|
|
229
|
-
- app/models/edgarj/drawer.rb
|
|
230
|
-
- app/models/edgarj/drawer/base.rb
|
|
231
|
-
- app/models/edgarj/drawer/normal.rb
|
|
232
|
-
- app/models/edgarj/drawer/popup.rb
|
|
233
233
|
- app/models/edgarj/model_permission.rb
|
|
234
234
|
- app/models/edgarj/page_info.rb
|
|
235
235
|
- app/models/edgarj/search.rb
|
|
@@ -352,6 +352,7 @@ files:
|
|
|
352
352
|
- test/dummy/public/favicon.ico
|
|
353
353
|
- test/dummy/script/rails
|
|
354
354
|
- test/dummy/test/functional/authors_controller_test.rb
|
|
355
|
+
- test/dummy/test/functional/authors_popup_controller_test.rb
|
|
355
356
|
- test/dummy/test/functional/books_controller_test.rb
|
|
356
357
|
- test/dummy/test/helpers/authors_helper_test.rb
|
|
357
358
|
- test/dummy/test/unit/author_test.rb
|
|
@@ -471,6 +472,7 @@ test_files:
|
|
|
471
472
|
- test/dummy/test/unit/rails_config_test.rb
|
|
472
473
|
- test/dummy/test/unit/book_test.rb
|
|
473
474
|
- test/dummy/test/functional/books_controller_test.rb
|
|
475
|
+
- test/dummy/test/functional/authors_popup_controller_test.rb
|
|
474
476
|
- test/dummy/test/functional/authors_controller_test.rb
|
|
475
477
|
- test/dummy/test/helpers/authors_helper_test.rb
|
|
476
478
|
- test/dummy/script/rails
|