prototype-rails 4.0.0 → 4.0.1
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/MIT-LICENSE +20 -0
- data/{README → README.md} +12 -0
- data/Rakefile +2 -0
- data/lib/prototype-rails/on_load_action_view.rb +5 -3
- metadata +15 -46
- data/test/assert_select_test.rb +0 -457
- data/test/controller/caching_test.rb +0 -43
- data/test/controller/content_type_test.rb +0 -16
- data/test/controller/mime_responds_test.rb +0 -213
- data/test/controller/new_base/content_type_test.rb +0 -19
- data/test/controller/new_base/render_rjs_test.rb +0 -71
- data/test/controller/render_js_test.rb +0 -22
- data/test/fixtures/functional_caching/_partial.erb +0 -3
- data/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +0 -6
- data/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +0 -1
- data/test/fixtures/old_content_type/render_default_for_rjs.rjs +0 -1
- data/test/fixtures/respond_to/all_types_with_layout.js.rjs +0 -1
- data/test/fixtures/respond_to/layouts/standard.html.erb +0 -1
- data/test/fixtures/respond_to/using_defaults.js.rjs +0 -1
- data/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +0 -1
- data/test/fixtures/respond_with/using_resource.js.rjs +0 -1
- data/test/fixtures/test/_one.html.erb +0 -1
- data/test/fixtures/test/_partial.html.erb +0 -1
- data/test/fixtures/test/_partial.js.erb +0 -1
- data/test/fixtures/test/_two.html.erb +0 -1
- data/test/fixtures/test/delete_with_js.rjs +0 -2
- data/test/fixtures/test/enum_rjs_test.rjs +0 -6
- data/test/fixtures/test/greeting.js.rjs +0 -1
- data/test/fixtures/test/render_explicit_html_template.js.rjs +0 -1
- data/test/fixtures/test/render_implicit_html_template.js.rjs +0 -1
- data/test/javascript_helper_test.rb +0 -61
- data/test/lib/abstract_unit.rb +0 -225
- data/test/lib/controller/fake_models.rb +0 -29
- data/test/render_other_test.rb +0 -256
- data/test/template/prototype_helper_test.rb +0 -476
- data/test/template/render_test.rb +0 -24
- data/test/template/scriptaculous_helper_test.rb +0 -86
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
# Don't change '/../temp/' cavalierly or you might hose something you don't want hosed
|
4
|
-
FILE_STORE_PATH = File.expand_path('../../../temp/test_cache', __FILE__)
|
5
|
-
|
6
|
-
class CachingController < ActionController::Base
|
7
|
-
abstract!
|
8
|
-
|
9
|
-
self.cache_store = :file_store, FILE_STORE_PATH
|
10
|
-
end
|
11
|
-
|
12
|
-
class FunctionalCachingController < CachingController
|
13
|
-
def js_fragment_cached_with_partial
|
14
|
-
respond_to do |format|
|
15
|
-
format.js
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def formatted_fragment_cached
|
20
|
-
respond_to do |format|
|
21
|
-
format.js
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
class FunctionalFragmentCachingTest < ActionController::TestCase
|
27
|
-
def setup
|
28
|
-
super
|
29
|
-
@store = ActiveSupport::Cache::MemoryStore.new
|
30
|
-
@controller = FunctionalCachingController.new
|
31
|
-
@controller.perform_caching = true
|
32
|
-
@controller.cache_store = @store
|
33
|
-
@request = ActionController::TestRequest.new
|
34
|
-
@response = ActionController::TestResponse.new
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_fragment_caching_in_rjs_partials
|
38
|
-
xhr :get, :js_fragment_cached_with_partial
|
39
|
-
assert_response :success
|
40
|
-
assert_match(/Old fragment caching in a partial/, @response.body)
|
41
|
-
assert_match "Old fragment caching in a partial", @store.instance_variable_get('@data').values.first.value
|
42
|
-
end
|
43
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class OldContentTypeController < ActionController::Base
|
4
|
-
def render_default_for_rjs
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
class ContentTypeTest < ActionController::TestCase
|
9
|
-
tests OldContentTypeController
|
10
|
-
|
11
|
-
def test_default_for_rjs
|
12
|
-
xhr :post, :render_default_for_rjs
|
13
|
-
assert_equal Mime::JS, @response.content_type
|
14
|
-
assert_equal "utf-8", @response.charset
|
15
|
-
end
|
16
|
-
end
|
@@ -1,213 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
require 'controller/fake_models'
|
3
|
-
require 'active_support/core_ext/hash/conversions'
|
4
|
-
|
5
|
-
class RespondToController < ActionController::Base
|
6
|
-
layout :set_layout
|
7
|
-
|
8
|
-
def html_xml_or_rss
|
9
|
-
respond_to do |type|
|
10
|
-
type.html { render :text => "HTML" }
|
11
|
-
type.xml { render :text => "XML" }
|
12
|
-
type.rss { render :text => "RSS" }
|
13
|
-
type.all { render :text => "Nothing" }
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def js_or_html
|
18
|
-
respond_to do |type|
|
19
|
-
type.js { render :text => "JS" }
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def json_or_yaml
|
24
|
-
respond_to do |type|
|
25
|
-
type.json { render :text => "JSON" }
|
26
|
-
type.yaml { render :text => "YAML" }
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def html_or_xml
|
31
|
-
respond_to do |type|
|
32
|
-
type.html { render :text => "HTML" }
|
33
|
-
type.xml { render :text => "XML" }
|
34
|
-
type.all { render :text => "Nothing" }
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def json_xml_or_html
|
39
|
-
respond_to do |type|
|
40
|
-
type.json { render :text => 'JSON' }
|
41
|
-
type.xml { render :xml => 'XML' }
|
42
|
-
type.html { render :text => 'HTML' }
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
|
-
def forced_xml
|
48
|
-
request.format = :xml
|
49
|
-
|
50
|
-
respond_to do |type|
|
51
|
-
type.html { render :text => "HTML" }
|
52
|
-
type.xml { render :text => "XML" }
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def just_xml
|
57
|
-
respond_to do |type|
|
58
|
-
type.xml { render :text => "XML" }
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def using_defaults
|
63
|
-
respond_to do |type|
|
64
|
-
type.js
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def using_defaults_with_type_list
|
69
|
-
respond_to(:js)
|
70
|
-
end
|
71
|
-
|
72
|
-
def made_for_content_type
|
73
|
-
respond_to do |type|
|
74
|
-
type.rss { render :text => "RSS" }
|
75
|
-
type.atom { render :text => "ATOM" }
|
76
|
-
type.all { render :text => "Nothing" }
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def custom_type_handling
|
81
|
-
respond_to do |type|
|
82
|
-
type.html { render :text => "HTML" }
|
83
|
-
type.custom("application/crazy-xml") { render :text => "Crazy XML" }
|
84
|
-
type.all { render :text => "Nothing" }
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
|
89
|
-
def custom_constant_handling
|
90
|
-
respond_to do |type|
|
91
|
-
type.html { render :text => "HTML" }
|
92
|
-
type.mobile { render :text => "Mobile" }
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def custom_constant_handling_without_block
|
97
|
-
respond_to do |type|
|
98
|
-
type.html { render :text => "HTML" }
|
99
|
-
type.mobile
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def handle_any
|
104
|
-
respond_to do |type|
|
105
|
-
type.html { render :text => "HTML" }
|
106
|
-
type.any(:js, :xml) { render :text => "Either JS or XML" }
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def handle_any_any
|
111
|
-
respond_to do |type|
|
112
|
-
type.html { render :text => 'HTML' }
|
113
|
-
type.any { render :text => 'Whatever you ask for, I got it' }
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def all_types_with_layout
|
118
|
-
respond_to do |type|
|
119
|
-
type.js
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
|
124
|
-
def iphone_with_html_response_type
|
125
|
-
request.format = :iphone if request.env["HTTP_ACCEPT"] == "text/iphone"
|
126
|
-
|
127
|
-
respond_to do |type|
|
128
|
-
type.html { @type = "Firefox" }
|
129
|
-
type.iphone { @type = "iPhone" }
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
def iphone_with_html_response_type_without_layout
|
134
|
-
request.format = "iphone" if request.env["HTTP_ACCEPT"] == "text/iphone"
|
135
|
-
|
136
|
-
respond_to do |type|
|
137
|
-
type.html { @type = "Firefox"; render :action => "iphone_with_html_response_type" }
|
138
|
-
type.iphone { @type = "iPhone" ; render :action => "iphone_with_html_response_type" }
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
def rescue_action(e)
|
143
|
-
raise
|
144
|
-
end
|
145
|
-
|
146
|
-
protected
|
147
|
-
def set_layout
|
148
|
-
if ["all_types_with_layout", "iphone_with_html_response_type"].include?(action_name)
|
149
|
-
"respond_to/layouts/standard"
|
150
|
-
elsif action_name == "iphone_with_html_response_type_without_layout"
|
151
|
-
"respond_to/layouts/missing"
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
|
157
|
-
class RespondToControllerTest < ActionController::TestCase
|
158
|
-
tests RespondToController
|
159
|
-
|
160
|
-
def test_using_defaults
|
161
|
-
@request.accept = "text/javascript"
|
162
|
-
get :using_defaults
|
163
|
-
assert_equal "text/javascript", @response.content_type
|
164
|
-
assert_equal '$("body").visualEffect("highlight");', @response.body
|
165
|
-
end
|
166
|
-
|
167
|
-
def test_using_defaults_with_type_list
|
168
|
-
@request.accept = "text/javascript"
|
169
|
-
get :using_defaults_with_type_list
|
170
|
-
assert_equal "text/javascript", @response.content_type
|
171
|
-
assert_equal '$("body").visualEffect("highlight");', @response.body
|
172
|
-
end
|
173
|
-
|
174
|
-
def test_rjs_type_skips_layout
|
175
|
-
@request.accept = "text/javascript"
|
176
|
-
get :all_types_with_layout
|
177
|
-
assert_equal 'RJS for all_types_with_layout', @response.body
|
178
|
-
end
|
179
|
-
|
180
|
-
def test_xhr
|
181
|
-
xhr :get, :using_defaults
|
182
|
-
assert_equal '$("body").visualEffect("highlight");', @response.body
|
183
|
-
end
|
184
|
-
end
|
185
|
-
|
186
|
-
class RespondWithController < ActionController::Base
|
187
|
-
respond_to :html, :json, :js
|
188
|
-
|
189
|
-
def using_resource
|
190
|
-
respond_with(resource)
|
191
|
-
end
|
192
|
-
protected
|
193
|
-
|
194
|
-
def resource
|
195
|
-
Customer.new("david", request.delete? ? nil : 13)
|
196
|
-
end
|
197
|
-
|
198
|
-
def _render_js(js, options)
|
199
|
-
self.content_type ||= Mime::JS
|
200
|
-
self.response_body = js.respond_to?(:to_js) ? js.to_js : js
|
201
|
-
end
|
202
|
-
end
|
203
|
-
|
204
|
-
class RespondWithControllerTest < ActionController::TestCase
|
205
|
-
tests RespondWithController
|
206
|
-
|
207
|
-
def test_using_resource
|
208
|
-
@request.accept = "text/javascript"
|
209
|
-
get :using_resource
|
210
|
-
assert_equal "text/javascript", @response.content_type
|
211
|
-
assert_equal '$("body").visualEffect("highlight");', @response.body
|
212
|
-
end
|
213
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
module ContentType
|
4
|
-
class ImpliedController < ActionController::Base
|
5
|
-
# Template's mime type is used if no content_type is specified
|
6
|
-
|
7
|
-
self.view_paths = [ActionView::FixtureResolver.new(
|
8
|
-
"content_type/implied/i_am_js_rjs.js.rjs" => "page.alert 'hello'"
|
9
|
-
)]
|
10
|
-
end
|
11
|
-
|
12
|
-
class ImpliedContentTypeTest < Rack::TestCase
|
13
|
-
test "sets Content-Type as text/javascript when rendering *.js" do
|
14
|
-
get "/content_type/implied/i_am_js_rjs", "format" => "js"
|
15
|
-
|
16
|
-
assert_header "Content-Type", "text/javascript; charset=utf-8"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
module RenderRjs
|
4
|
-
class BasicController < ActionController::Base
|
5
|
-
layout "application", :only => :index_respond_to
|
6
|
-
|
7
|
-
self.view_paths = [ActionView::FixtureResolver.new(
|
8
|
-
"layouts/application.html.erb" => "",
|
9
|
-
"render_rjs/basic/index.js.rjs" => "page[:customer].replace_html render(:partial => 'customer')",
|
10
|
-
"render_rjs/basic/index_html.js.rjs" => "page[:customer].replace_html :partial => 'customer'",
|
11
|
-
"render_rjs/basic/index_no_js.js.erb" => "<%= render(:partial => 'developer') %>",
|
12
|
-
"render_rjs/basic/_customer.js.erb" => "JS Partial",
|
13
|
-
"render_rjs/basic/_customer.html.erb" => "HTML Partial",
|
14
|
-
"render_rjs/basic/_developer.html.erb" => "HTML Partial",
|
15
|
-
"render_rjs/basic/index_locale.js.rjs" => "page[:customer].replace_html :partial => 'customer'",
|
16
|
-
"render_rjs/basic/_customer.da.html.erb" => "Danish HTML Partial",
|
17
|
-
"render_rjs/basic/_customer.da.js.erb" => "Danish JS Partial"
|
18
|
-
)]
|
19
|
-
|
20
|
-
def index
|
21
|
-
render
|
22
|
-
end
|
23
|
-
|
24
|
-
def index_respond_to
|
25
|
-
respond_to do |format|
|
26
|
-
format.js { render :action => "index_no_js" }
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def index_locale
|
31
|
-
self.locale = :da
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
class TestBasic < Rack::TestCase
|
36
|
-
testing BasicController
|
37
|
-
|
38
|
-
def setup
|
39
|
-
@old_locale = I18n.locale
|
40
|
-
end
|
41
|
-
|
42
|
-
def teardown
|
43
|
-
I18n.locale = @old_locale
|
44
|
-
end
|
45
|
-
|
46
|
-
test "rendering a partial in an RJS template should pick the JS template over the HTML one" do
|
47
|
-
get :index, "format" => "js"
|
48
|
-
assert_response("$(\"customer\").update(\"JS Partial\");")
|
49
|
-
end
|
50
|
-
|
51
|
-
test "rendering a partial in an RJS template should pick the HTML one if no JS is available" do
|
52
|
-
get :index_no_js, "format" => "js"
|
53
|
-
assert_response("HTML Partial")
|
54
|
-
end
|
55
|
-
|
56
|
-
test "rendering a partial in an RJS template should pick the HTML one if no JS is available on respond_to" do
|
57
|
-
get :index_respond_to, "format" => "js"
|
58
|
-
assert_response("HTML Partial")
|
59
|
-
end
|
60
|
-
|
61
|
-
test "replacing an element with a partial in an RJS template should pick the HTML template over the JS one" do
|
62
|
-
get :index_html, "format" => "js"
|
63
|
-
assert_response("$(\"customer\").update(\"HTML Partial\");")
|
64
|
-
end
|
65
|
-
|
66
|
-
test "replacing an element with a partial in an RJS template with a locale should pick the localed HTML template" do
|
67
|
-
get :index_locale, "format" => "js"
|
68
|
-
assert_response("$(\"customer\").update(\"Danish HTML Partial\");")
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'abstract_unit'
|
2
|
-
|
3
|
-
class RenderJSTest < ActionController::TestCase
|
4
|
-
class TestController < ActionController::Base
|
5
|
-
protect_from_forgery
|
6
|
-
|
7
|
-
def self.controller_path
|
8
|
-
'test'
|
9
|
-
end
|
10
|
-
|
11
|
-
def greeting
|
12
|
-
# let's just rely on the template
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
tests TestController
|
17
|
-
|
18
|
-
def test_render_with_default_from_accept_header
|
19
|
-
xhr :get, :greeting
|
20
|
-
assert_equal "$(\"body\").visualEffect(\"highlight\");", @response.body
|
21
|
-
end
|
22
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
page.replace_html 'notices', :partial => 'partial'
|
@@ -1 +0,0 @@
|
|
1
|
-
page.alert 'hello world!'
|
@@ -1 +0,0 @@
|
|
1
|
-
page << "RJS for all_types_with_layout"
|
@@ -1 +0,0 @@
|
|
1
|
-
<html><div id="html"><%= yield %></div></html>
|
@@ -1 +0,0 @@
|
|
1
|
-
page[:body].visual_effect :highlight
|
@@ -1 +0,0 @@
|
|
1
|
-
page[:body].visual_effect :highlight
|
@@ -1 +0,0 @@
|
|
1
|
-
page[:body].visual_effect :highlight
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= render :partial => "two" %> world
|
@@ -1 +0,0 @@
|
|
1
|
-
partial html
|
@@ -1 +0,0 @@
|
|
1
|
-
partial js
|
@@ -1 +0,0 @@
|
|
1
|
-
Hello
|