rails-footnotes 3.7.2 → 3.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/.gitignore +2 -0
  2. data/.rspec.example +1 -0
  3. data/.watchr.example +13 -0
  4. data/Gemfile +1 -1
  5. data/README.rdoc +9 -6
  6. data/Rakefile +5 -6
  7. data/lib/rails-footnotes.rb +4 -3
  8. data/lib/rails-footnotes/{notes/abstract_note.rb → abstract_note.rb} +4 -4
  9. data/lib/rails-footnotes/footnotes.rb +0 -6
  10. data/lib/rails-footnotes/notes/all.rb +1 -0
  11. data/lib/rails-footnotes/notes/assigns_note.rb +3 -5
  12. data/lib/rails-footnotes/notes/controller_note.rb +11 -28
  13. data/lib/rails-footnotes/notes/cookies_note.rb +1 -3
  14. data/lib/rails-footnotes/notes/env_note.rb +0 -2
  15. data/lib/rails-footnotes/notes/files_note.rb +1 -3
  16. data/lib/rails-footnotes/notes/filters_note.rb +4 -6
  17. data/lib/rails-footnotes/notes/general_note.rb +1 -3
  18. data/lib/rails-footnotes/notes/javascripts_note.rb +1 -3
  19. data/lib/rails-footnotes/notes/layout_note.rb +0 -2
  20. data/lib/rails-footnotes/notes/log_note.rb +4 -6
  21. data/lib/rails-footnotes/notes/params_note.rb +0 -2
  22. data/lib/rails-footnotes/notes/partials_note.rb +0 -2
  23. data/lib/rails-footnotes/notes/queries_note.rb +0 -2
  24. data/lib/rails-footnotes/notes/routes_note.rb +1 -3
  25. data/lib/rails-footnotes/notes/session_note.rb +0 -2
  26. data/lib/rails-footnotes/notes/stylesheets_note.rb +1 -3
  27. data/lib/rails-footnotes/notes/view_note.rb +0 -2
  28. data/lib/rails-footnotes/version.rb +1 -1
  29. data/rails-footnotes.gemspec +2 -2
  30. data/spec/abstract_note_spec.rb +80 -0
  31. data/spec/footnotes_spec.rb +215 -0
  32. data/{test/test_helper.rb → spec/spec_helper.rb} +7 -3
  33. metadata +17 -17
  34. data/lib/rails-footnotes/backtracer.rb +0 -36
  35. data/lib/rails-footnotes/notes/rpm_note.rb +0 -30
  36. data/test/footnotes_test.rb +0 -222
  37. data/test/notes/abstract_note_test.rb +0 -107
@@ -1,30 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/abstract_note"
2
-
3
- if defined?(NewRelic)
4
- module Footnotes
5
- module Notes
6
- class RpmNote < AbstractNote
7
- def initialize(controller)
8
- @rpm_id=NewRelic::Agent.instance.transaction_sampler.current_sample_id
9
- end
10
-
11
- def row
12
- :edit
13
- end
14
-
15
- def link
16
- #{:controller => 'newrelic', :action => 'show_sample_detail', :id => @rpm_id}
17
- "/newrelic/show_sample_detail/#{@rpm_id}" if @rpm_id
18
- end
19
-
20
- def valid?
21
- if defined?(NewRelic::Control)
22
- !NewRelic::Control.instance['skip_developer_route']
23
- else
24
- !NewRelic::Config.instance['skip_developer_route']
25
- end
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,222 +0,0 @@
1
- require 'test_helper'
2
-
3
- require 'action_controller'
4
- require 'action_controller/test_case'
5
-
6
- class FootnotesController < ActionController::Base; attr_accessor :template, :performed_render; end
7
-
8
- module Footnotes::Notes
9
- class TestNote < AbstractNote
10
- def self.to_sym; :test; end
11
- def valid?; true; end
12
- end
13
-
14
- class NoteXNote < TestNote; end
15
- class NoteYNote < TestNote; end
16
- class NoteZNote < TestNote; end
17
- end
18
-
19
- class FootnotesTest < Test::Unit::TestCase
20
- def setup
21
- @controller = FootnotesController.new
22
- @controller.template = Object.new
23
- @controller.request = ActionController::TestRequest.new
24
- @controller.response = ActionController::TestResponse.new
25
- @controller.response.body = $html.dup
26
- @controller.params = {}
27
-
28
- Footnotes::Filter.notes = [ :test ]
29
- Footnotes::Filter.multiple_notes = false
30
- @footnotes = Footnotes::Filter.new(@controller)
31
- end
32
-
33
- def test_footnotes_controller
34
- index = @controller.response.body.index(/This is the HTML page/)
35
- assert_equal 334, index
36
- end
37
-
38
- def test_foonotes_included
39
- footnotes_perform!
40
- assert_not_equal $html, @controller.response.body
41
- end
42
-
43
- def test_footnotes_not_included_when_request_is_xhr
44
- @controller.request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
45
- @controller.request.env['HTTP_ACCEPT'] = 'text/javascript, text/html, application/xml, text/xml, */*'
46
-
47
- footnotes_perform!
48
- assert_equal $html, @controller.response.body
49
- end
50
-
51
- def test_footnotes_not_included_when_content_type_is_javascript
52
- @controller.response.headers['Content-Type'] = 'text/javascript'
53
-
54
- footnotes_perform!
55
- assert_equal $html, @controller.response.body
56
- end
57
-
58
- def test_footnotes_included_when_content_type_is_html
59
- @controller.response.headers['Content-Type'] = 'text/html'
60
-
61
- footnotes_perform!
62
- assert_not_equal $html, @controller.response.body
63
- end
64
-
65
- def test_footnotes_included_when_content_type_is_nil
66
- footnotes_perform!
67
- assert_not_equal $html, @controller.response.body
68
- end
69
-
70
- def test_not_included_when_body_is_not_a_string
71
- @controller.response.body = Proc.new{ Time.now }
72
- assert_nothing_raised do
73
- footnotes_perform!
74
- end
75
- end
76
-
77
- def test_footnotes_prefix
78
- assert_equal 'txmt://open?url=file://%s&amp;line=%d&amp;column=%d', Footnotes::Filter.prefix
79
- assert_equal 'txmt://open?url=file://file&amp;line=0&amp;column=0', Footnotes::Filter.prefix('file', 0, 0)
80
- assert_equal 'txmt://open?url=file://file&amp;line=10&amp;column=10', Footnotes::Filter.prefix('file', 10, 10)
81
- assert_equal 'txmt://open?url=file://file&amp;line=10&amp;column=10', Footnotes::Filter.prefix('file', 10, 10, 10)
82
- assert_equal 'txmt://open?url=file://file&amp;line=10&amp;column=10', Footnotes::Filter.prefix('file', '10', '10')
83
- end
84
-
85
- def test_notes_are_initialized
86
- footnotes_perform!
87
- test_note = @footnotes.instance_variable_get('@notes').first
88
- assert_equal 'Footnotes::Notes::TestNote', test_note.class.name
89
- assert_equal :test, test_note.to_sym
90
- end
91
-
92
- def test_notes_links
93
- note = Footnotes::Notes::TestNote.new
94
- note.expects(:row).times(2)
95
- @footnotes.instance_variable_set(:@notes, [note])
96
- footnotes_perform!
97
- end
98
-
99
- def test_notes_fieldset
100
- note = Footnotes::Notes::TestNote.new
101
- note.expects(:has_fieldset?).times(3)
102
- @footnotes.instance_variable_set(:@notes, [note])
103
- footnotes_perform!
104
- end
105
-
106
- def test_multiple_notes
107
- Footnotes::Filter.multiple_notes = true
108
- note = Footnotes::Notes::TestNote.new
109
- note.expects(:has_fieldset?).times(2)
110
- @footnotes.instance_variable_set(:@notes, [note])
111
- footnotes_perform!
112
- end
113
-
114
- def test_notes_are_reset
115
- note = Footnotes::Notes::TestNote.new
116
- note.class.expects(:close!)
117
- @footnotes.instance_variable_set(:@notes, [note])
118
- @footnotes.send(:close!, @controller)
119
- end
120
-
121
- def test_links_helper
122
- note = Footnotes::Notes::TestNote.new
123
- assert_equal '<a href="#" onclick="">Test</a>', @footnotes.send(:link_helper, note)
124
-
125
- note.expects(:link).times(1).returns(:link)
126
- assert_equal '<a href="link" onclick="">Test</a>', @footnotes.send(:link_helper, note)
127
- end
128
-
129
- def test_links_helper_has_fieldset?
130
- note = Footnotes::Notes::TestNote.new
131
- note.expects(:has_fieldset?).times(1).returns(true)
132
- assert_equal '<a href="#" onclick="Footnotes.hideAllAndToggle(\'test_debug_info\');return false;">Test</a>', @footnotes.send(:link_helper, note)
133
- end
134
-
135
- def test_links_helper_onclick
136
- note = Footnotes::Notes::TestNote.new
137
- note.expects(:onclick).times(2).returns(:onclick)
138
- assert_equal '<a href="#" onclick="onclick">Test</a>', @footnotes.send(:link_helper, note)
139
-
140
- note.expects(:has_fieldset?).times(1).returns(true)
141
- assert_equal '<a href="#" onclick="onclick">Test</a>', @footnotes.send(:link_helper, note)
142
- end
143
-
144
- def test_insert_style
145
- @controller.response.body = "<head></head><split><body></body>"
146
- @footnotes = Footnotes::Filter.new(@controller)
147
- footnotes_perform!
148
- assert @controller.response.body.split('<split>').first.include?('<!-- Footnotes Style -->')
149
- end
150
-
151
- def test_insert_footnotes_inside_body
152
- @controller.response.body = "<head></head><split><body></body>"
153
- @footnotes = Footnotes::Filter.new(@controller)
154
- footnotes_perform!
155
- assert @controller.response.body.split('<split>').last.include?('<!-- End Footnotes -->')
156
- end
157
-
158
- def test_insert_footnotes_inside_holder
159
- @controller.response.body = "<head></head><split><div id='footnotes_holder'></div>"
160
- @footnotes = Footnotes::Filter.new(@controller)
161
- footnotes_perform!
162
- assert @controller.response.body.split('<split>').last.include?('<!-- End Footnotes -->')
163
- end
164
-
165
- def test_insert_text
166
- @footnotes.send(:insert_text, :after, /<head>/, "Graffiti")
167
- after = " <head>Graffiti"
168
- assert_equal after, @controller.response.body.split("\n")[2]
169
-
170
- @footnotes.send(:insert_text, :before, /<\/body>/, "Notes")
171
- after = " Notes</body>"
172
- assert_equal after, @controller.response.body.split("\n")[12]
173
- end
174
-
175
- def test_hooks
176
- Footnotes::Filter.notes = [:note_x, :note_y, :note_z]
177
- Footnotes.setup {|config| config.before {|controller, filter| filter.notes -= [:note_y] }}
178
- Footnotes::Filter.start!(@controller)
179
- assert_equal [:note_x, :note_z], Footnotes::Filter.notes
180
-
181
- Footnotes.setup {|config| config.after {|controller, filter| filter.notes -= [:note_y] }}
182
- @footnotes.close!(@controller)
183
- assert_equal [:note_x, :note_z], Footnotes::Filter.notes
184
- end
185
-
186
- protected
187
- # First we make sure that footnotes will perform (long life to mocha!)
188
- # Then we call add_footnotes!
189
- #
190
- def footnotes_perform!
191
- template_expects('html')
192
- @controller.performed_render = true
193
-
194
- Footnotes::Filter.start!(@controller)
195
- @footnotes.add_footnotes!
196
- end
197
-
198
- def template_expects(format)
199
- if @controller.template.respond_to?(:template_format)
200
- @controller.template.expects(:template_format).returns(format)
201
- else
202
- @controller.template.expects(:format).returns(format)
203
- end
204
- end
205
- end
206
-
207
- $html = <<HTML
208
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
209
- <html>
210
- <head>
211
- <title>HTML to XHTML Example: HTML page</title>
212
- <link rel="Stylesheet" href="htmltohxhtml.css" type="text/css" media="screen">
213
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
214
- </head>
215
- <body>
216
- <p>This is the HTML page. It works and is encoded just like any HTML page you
217
- have previously done. View <a href="htmltoxhtml2.htm">the XHTML version</a> of
218
- this page to view the difference between HTML and XHTML.</p>
219
- <p>You will be glad to know that no changes need to be made to any of your CSS files.</p>
220
- </body>
221
- </html>
222
- HTML
@@ -1,107 +0,0 @@
1
- require 'test_helper'
2
-
3
- class AbstractNoteTest < Test::Unit::TestCase
4
- def setup
5
- @note = Footnotes::Notes::AbstractNote.new
6
- Footnotes::Filter.notes = [:abstract]
7
- end
8
-
9
- def test_respond_to_start_and_close
10
- assert_respond_to Footnotes::Notes::AbstractNote, :start!
11
- assert_respond_to Footnotes::Notes::AbstractNote, :close!
12
- end
13
-
14
- def test_respond_to_sym
15
- assert_equal :abstract, Footnotes::Notes::AbstractNote.to_sym
16
- assert_equal :abstract, @note.to_sym
17
- end
18
-
19
- def test_respond_to_included?
20
- assert Footnotes::Notes::AbstractNote.included?
21
- Footnotes::Filter.notes = []
22
- assert !Footnotes::Notes::AbstractNote.included?
23
- end
24
-
25
- def test_respond_to_row
26
- assert_equal :show, @note.row
27
- end
28
-
29
- def test_respond_to_title
30
- assert_respond_to @note.class, :title
31
- end
32
-
33
- def test_respond_to_legend
34
- assert_respond_to @note, :legend
35
- end
36
-
37
- def test_respond_to_link
38
- assert_respond_to @note, :link
39
- end
40
-
41
- def test_respond_to_onclick
42
- assert_respond_to @note, :onclick
43
- end
44
-
45
- def test_respond_to_stylesheet
46
- assert_respond_to @note, :stylesheet
47
- end
48
-
49
- def test_respond_to_javascript
50
- assert_respond_to @note, :javascript
51
- end
52
-
53
- def test_respond_to_valid?
54
- assert_respond_to @note, :valid?
55
- assert @note.valid?
56
- end
57
-
58
- def test_respond_to_has_fieldset?
59
- assert_respond_to @note, :has_fieldset?
60
- assert !@note.has_fieldset?
61
- end
62
-
63
- def test_footnotes_prefix
64
- Footnotes::Filter.prefix = ''
65
- assert !@note.send(:prefix?)
66
- Footnotes::Filter.prefix = 'txmt://open?url=file://%s&amp;line=%d&amp;column=%d'
67
- assert @note.send(:prefix?)
68
- end
69
-
70
- def test_footnotes_escape
71
- assert_equal '&lt;', @note.send(:escape,'<')
72
- assert_equal '&amp;', @note.send(:escape,'&')
73
- assert_equal '&gt;', @note.send(:escape,'>')
74
- end
75
-
76
- def test_footnotes_mount_table
77
- assert_equal '', @note.send(:mount_table,[])
78
- assert_equal '', @note.send(:mount_table,[['h1','h2','h3']], :class => 'table')
79
-
80
- tab = <<-TABLE
81
- <table class="table" >
82
- <thead><tr><th>H1</th></tr></thead>
83
- <tbody><tr><td>r1c1</td></tr></tbody>
84
- </table>
85
- TABLE
86
-
87
- assert_equal tab, @note.send(:mount_table,[['h1'],['r1c1']], :class => 'table')
88
-
89
- tab = <<-TABLE
90
- <table >
91
- <thead><tr><th>H1</th><th>H2</th><th>H3</th></tr></thead>
92
- <tbody><tr><td>r1c1</td><td>r1c2</td><td>r1c3</td></tr></tbody>
93
- </table>
94
- TABLE
95
-
96
- assert_equal tab, @note.send(:mount_table,[['h1','h2','h3'],['r1c1','r1c2','r1c3']])
97
-
98
- tab = <<-TABLE
99
- <table >
100
- <thead><tr><th>H1</th><th>H2</th><th>H3</th></tr></thead>
101
- <tbody><tr><td>r1c1</td><td>r1c2</td><td>r1c3</td></tr><tr><td>r2c1</td><td>r2c2</td><td>r2c3</td></tr></tbody>
102
- </table>
103
- TABLE
104
-
105
- assert_equal tab, @note.send(:mount_table,[['h1','h2','h3'],['r1c1','r1c2','r1c3'],['r2c1','r2c2','r2c3']])
106
- end
107
- end