dokkit 0.4.1 → 0.4.2

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.
Files changed (68) hide show
  1. data/Manifest.txt +1 -59
  2. data/lib/dokkit.rb +1 -1
  3. data/lib/dokkit/environment/basic.rb +23 -8
  4. data/lib/dokkit/filters.rb +1 -0
  5. data/lib/dokkit/filters/erb.rb +3 -3
  6. data/lib/dokkit/filters/haml.rb +31 -0
  7. data/lib/dokkit/models/simple/doc/layouts/simple.html +1 -1
  8. data/lib/dokkit/resource/document.rb +59 -63
  9. metadata +3 -61
  10. data/spec/dokkit/application_spec.rb +0 -141
  11. data/spec/dokkit/cache/cache_spec.rb +0 -87
  12. data/spec/dokkit/dokkit_spec.rb +0 -20
  13. data/spec/dokkit/environment/basic_spec.rb +0 -138
  14. data/spec/dokkit/environment/helpers/extmap_spec.rb +0 -52
  15. data/spec/dokkit/environment/helpers/fileselection_spec.rb +0 -80
  16. data/spec/dokkit/environment/helpers/test_data/doc/pages/document_1.ext_1 +0 -0
  17. data/spec/dokkit/environment/helpers/test_data/doc/pages/document_2 +0 -0
  18. data/spec/dokkit/environment/helpers/test_data/doc/pages/document_3.ext_3 +0 -0
  19. data/spec/dokkit/environment/test_data/doc/data/data +0 -0
  20. data/spec/dokkit/environment/test_data/doc/pages/document_1 +0 -0
  21. data/spec/dokkit/environment/test_data/doc/pages/document_1.yaml +0 -3
  22. data/spec/dokkit/environment/test_data/doc/pages/document_2 +0 -0
  23. data/spec/dokkit/environment/test_data/doc/pages/subdir/document_1 +0 -0
  24. data/spec/dokkit/factory/factory_spec.rb +0 -69
  25. data/spec/dokkit/filters/deplate_spec.rb +0 -47
  26. data/spec/dokkit/filters/erb_spec.rb +0 -26
  27. data/spec/dokkit/filters/maruku_spec.rb +0 -28
  28. data/spec/dokkit/filters/nil_spec.rb +0 -29
  29. data/spec/dokkit/filters/tidy_spec.rb +0 -48
  30. data/spec/dokkit/hash_spec.rb +0 -89
  31. data/spec/dokkit/logging/logger_spec.rb +0 -138
  32. data/spec/dokkit/logging/observers/console_spec.rb +0 -68
  33. data/spec/dokkit/resource/data_spec.rb +0 -32
  34. data/spec/dokkit/resource/document_spec.rb +0 -523
  35. data/spec/dokkit/resource/extensions/html_spec.rb +0 -35
  36. data/spec/dokkit/resource/extensions/url_spec.rb +0 -29
  37. data/spec/dokkit/resource/filenamehelper_spec.rb +0 -33
  38. data/spec/dokkit/resource/test_data/doc/configs/config_1.yaml +0 -3
  39. data/spec/dokkit/resource/test_data/doc/configs/config_2.yaml +0 -3
  40. data/spec/dokkit/resource/test_data/doc/configs/required.yaml +0 -3
  41. data/spec/dokkit/resource/test_data/doc/configs/subdir/document.yaml +0 -3
  42. data/spec/dokkit/resource/test_data/doc/layouts/container.html +0 -6
  43. data/spec/dokkit/resource/test_data/doc/layouts/layout.html +0 -6
  44. data/spec/dokkit/resource/test_data/doc/layouts/layout.latex +0 -8
  45. data/spec/dokkit/resource/test_data/doc/layouts/nested/nested.html +0 -4
  46. data/spec/dokkit/resource/test_data/doc/layouts/subdir/document.html +0 -6
  47. data/spec/dokkit/resource/test_data/doc/layouts/subdir/document.latex +0 -8
  48. data/spec/dokkit/resource/test_data/doc/pages/COMMON.yaml +0 -4
  49. data/spec/dokkit/resource/test_data/doc/pages/document_with_many_config.ext +0 -7
  50. data/spec/dokkit/resource/test_data/doc/pages/document_with_many_errors.ext +0 -12
  51. data/spec/dokkit/resource/test_data/doc/pages/document_with_many_targets.ext +0 -19
  52. data/spec/dokkit/resource/test_data/doc/pages/document_with_nested_layout.ext +0 -13
  53. data/spec/dokkit/resource/test_data/doc/pages/document_with_nil_target.ext +0 -5
  54. data/spec/dokkit/resource/test_data/doc/pages/document_with_not_defined_target.ext +0 -6
  55. data/spec/dokkit/resource/test_data/doc/pages/document_with_one_target.ext +0 -8
  56. data/spec/dokkit/resource/test_data/doc/pages/document_with_postfilter.ext +0 -10
  57. data/spec/dokkit/resource/test_data/doc/pages/subdir/COMMON.yaml +0 -3
  58. data/spec/dokkit/resource/test_data/doc/pages/subdir/document.ext +0 -8
  59. data/spec/dokkit/resource/test_data/doc/pages/subdir/document.yaml +0 -5
  60. data/spec/dokkit/tasklib/clean_spec.rb +0 -75
  61. data/spec/dokkit/tasklib/render_spec.rb +0 -125
  62. data/spec/dokkit/tasklib/test_data/doc/data/data_1 +0 -0
  63. data/spec/dokkit/tasklib/test_data/doc/pages/document_1 +0 -0
  64. data/spec/dokkit/tasklib/test_data/doc/pages/document_2 +0 -0
  65. data/spec/dokkit/test_data/dokkit/models/model1/doc/pages/model1 +0 -0
  66. data/spec/dokkit/test_data/dokkit/models/model2/doc/pages/model2 +0 -0
  67. data/spec/spec.opts +0 -4
  68. data/spec/spec_helper.rb +0 -139
@@ -1,68 +0,0 @@
1
- #
2
- # File 'consolelog_spec.rb' created on 23 feb 2008 at 16:40:31.
3
- # See 'dokkit.rb' or +LICENSE+ for licence information.
4
- #
5
- # (c) 2006, 2007, 2008 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
6
- #
7
- # To execute this spec run:
8
- #
9
- # spec spec/consolelog_spec.rb
10
- #
11
-
12
-
13
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__),'../../../../lib')))
14
-
15
- require 'rubygems'
16
- require 'spec'
17
- require 'dokkit'
18
- require 'dokkit/logging/observers/console'
19
- require 'spec/spec_helper.rb'
20
-
21
- describe Dokkit::Logging::Observer::Console, ' when initialized' do
22
- it 'should reference to a logger instance and attach to it' do
23
- @logger = mock('logger')
24
- @logger.should_receive(:attach)
25
- @consolelog = Dokkit::Logging::Observer::Console.new(@logger)
26
- @consolelog.logger.should_not be_nil
27
- end
28
- end
29
-
30
- describe Dokkit::Logging::Observer::Console, ' when logger notifies' do
31
- include SpecHelper::CaptureOutput
32
- before do
33
- @logger = mock('logger')
34
- @logger.stub!(:attach)
35
- @consolelog = Dokkit::Logging::Observer::Console.new(@logger)
36
- end
37
- describe ' an error message' do
38
- it 'should send the error message to the console' do
39
- @logger.stub!(:last_message).and_return({ :text => 'error message', :level => Dokkit::Logging::ERROR })
40
- lambda { @consolelog.update }.should raise_error(RuntimeError, /\[ERROR\] error message/)
41
- end
42
- end
43
- describe ' a warning message' do
44
- it 'should send the warning message to the console' do
45
- @logger.stub!(:last_message).and_return({ :text => 'warning message', :level => Dokkit::Logging::WARNING })
46
- capture_stderr do
47
- @consolelog.update
48
- end.should match(/\[WARNING\] warning message/)
49
- end
50
- end
51
- describe ' an info message' do
52
- it 'should send the info message to the console' do
53
- @logger.stub!(:last_message).and_return({ :text => 'info message', :level => Dokkit::Logging::INFO })
54
- capture_stdout do
55
- @consolelog.update
56
- end.should match(/\[INFO\] info message/)
57
- end
58
- end
59
- describe ' a debug message' do
60
- it 'should send the debug message the console' do
61
- @logger.stub!(:last_message).and_return({ :text => 'debug message', :level => Dokkit::Logging::DEBUG })
62
- capture_stdout do
63
- @consolelog.update
64
- end.should match(/\[DEBUG\] debug message/)
65
- end
66
- end
67
- end
68
-
@@ -1,32 +0,0 @@
1
- #
2
- # File 'data_spec.rb' created on 16 apr 2008 at 20:03:08.
3
- # See 'dokkit.rb' or +LICENSE+ for licence information.
4
- #
5
- # (c)2006, 2007, 2008 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
6
- #
7
- # To execute this spec run:
8
- #
9
- # spec spec/data_spec.rb
10
- #
11
-
12
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__),'../../../lib')))
13
-
14
- require 'rubygems'
15
- require 'spec'
16
- require 'dokkit/resource/data'
17
- require 'spec/spec_helper.rb'
18
-
19
- describe Dokkit::Resource::Data do
20
- before do
21
- @data = Dokkit::Resource::Data.new('doc/data/data_1')
22
- end
23
- it 'should respond to :source_fn' do
24
- @data.should respond_to(:source_fn)
25
- end
26
- it 'should respond to :configuration' do
27
- @data.should respond_to(:configuration)
28
- end
29
- it 'should return the target filename' do
30
- @data.target_fn.should == 'output/data_1'
31
- end
32
- end
@@ -1,523 +0,0 @@
1
- #
2
- # File 'document_spec.rb' created on 17 apr 2008 at 18:01:58.
3
- # See 'dokkit.rb' or +LICENSE+ for licence information.
4
- #
5
- # (c) 2006, 2007, 2008 Andrea Fazzi <andrea.fazzi@alca.le.it> (and contributors).
6
- #
7
- # To execute this spec run:
8
- #
9
- # spec spec/document_spec.rb
10
- #
11
-
12
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__),'../../../lib')))
13
-
14
- require 'rubygems'
15
- require 'spec'
16
- require 'dokkit/resource/document'
17
- require 'spec/spec_helper.rb'
18
-
19
- describe Dokkit::Resource::Document, '#include' do
20
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
21
- before(:all) do
22
- @initial_dir = Dir.pwd
23
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
24
- end
25
- before do
26
- @logger = logger
27
- @filter_factory = filter_factory
28
- @cache = cache
29
- @document = Dokkit::Resource::Document.new('doc/pages/subdir/document.ext',
30
- configuration,
31
- @logger,
32
- @cache,
33
- @resource_factory,
34
- @filter_factory)
35
- File.stub!(:read).and_return('<%= "erb" %>')
36
- end
37
- after(:all) do
38
- Dir.chdir(@initial_dir)
39
- end
40
- it 'should read the given file processing it with erb' do
41
- File.should_receive(:read).with('included.html').and_return('<%= "erb" %>')
42
- @document.include('included.html')
43
- end
44
- it 'should process the given file with erb' do
45
- @erb = ERB.new('<%= "erb" %>')
46
- ERB.should_receive(:new).with('<%= "erb" %>').and_return(@erb)
47
- @document.include('included.html').should == "erb"
48
- end
49
- it 'should add the given file as dependency' do
50
- @cache.should_receive(:add_dependency).with('doc/pages/subdir/document.ext', 'html', 'included.html')
51
- @document.include('included.html')
52
- end
53
- end
54
-
55
- describe Dokkit::Resource::Document, ' when inizialized with a code block' do
56
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
57
- before(:all) do
58
- @initial_dir = Dir.pwd
59
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
60
- end
61
- before do
62
- module Extension; def foo; end; end
63
- end
64
- before do
65
- @document = Dokkit::Resource::Document.new('doc/pages/subdir/document.ext',
66
- configuration,
67
- logger,
68
- cache,
69
- resource_factory,
70
- filter_factory) { |document| document.extend Extension }
71
- end
72
- after(:all) do
73
- Dir.chdir(@initial_dir)
74
- end
75
- it 'should be extended with Extension module' do
76
- @document.respond_to?(:foo).should be_true
77
- end
78
- end
79
-
80
- describe Dokkit::Resource::Document, ' when inizialized with document.ext' do
81
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
82
- before(:all) do
83
- @initial_dir = Dir.pwd
84
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
85
- end
86
- before do
87
- @logger = logger
88
- @filter_factory = filter_factory
89
- @document = Dokkit::Resource::Document.new('doc/pages/subdir/document.ext',
90
- configuration,
91
- @logger,
92
- cache,
93
- @resource_factory,
94
- @filter_factory)
95
- end
96
- after(:all) do
97
- Dir.chdir(@initial_dir)
98
- end
99
- it 'should set a default output' do
100
- @document.default_format.should == 'html'
101
- end
102
- it 'should have targets hash' do
103
- @document.targets.should
104
- end
105
- it 'should set a default target filename for a given output format' do
106
- @document.target_for(@document.default_format).should == 'output/subdir/document.html'
107
- end
108
- it 'should have a default filter chain for the default output format' do
109
- @document.filters_for(@document.default_format).should == ['erb', 'deplate-html']
110
- end
111
- it 'should have a default filter chain for latex output' do
112
- @document.filters_for('latex').should == ['erb', 'deplate-latex']
113
- end
114
- it 'should have a default filter chain for text output' do
115
- @document.filters_for('text').should == ['erb', 'deplate-text']
116
- end
117
- it 'should fail if a filter chain for a given output format was not found' do
118
- @logger.should_receive(:error).with(/defined filter/)
119
- @document.filters_for('notexists')
120
- end
121
- it 'should return the target filename for the given format' do
122
- @document.target_for('html').should == 'output/subdir/document.html'
123
- end
124
- it 'should set the source file basename' do
125
- @document.basename.should == 'document'
126
- end
127
- it 'should set the dirname' do
128
- @document.dirname.should == 'doc/pages/subdir'
129
- end
130
- it 'should set the filename with path but without extension' do
131
- @document.name_noext == 'doc/pages/subdir/document'
132
- end
133
- it 'should set name relative to document directory' do
134
- @document.relativename == 'subdir/document'
135
- end
136
- it 'should read the content of the source file' do
137
- @document.source.should match(/\* Title for document/)
138
- end
139
- it 'should not store header information in the source text' do
140
- @document.source.should_not match(/^-{3}$(.*?)-{3}$/m)
141
- end
142
- it 'should configure itself through configuration files' do
143
- @document.configuration.should == merge_hashes(configuration,
144
- 'doc/configs/required.yaml',
145
- 'doc/pages/subdir/document.yaml',
146
- 'doc/pages/subdir/COMMON.yaml',
147
- 'doc/pages/COMMON.yaml',
148
- 'doc/configs/subdir/document.yaml',
149
- { 'key_in_header' => 'value in header'}
150
- )
151
- end
152
- it 'should collect config filenames' do
153
- @document.config_fns.should == ['doc/configs/subdir/document.yaml',
154
- File.expand_path('doc/pages/COMMON.yaml'),
155
- File.expand_path('doc/pages/subdir/COMMON.yaml'),
156
- 'doc/pages/subdir/document.yaml',
157
- 'doc/configs/required.yaml',
158
- 'doc/pages/subdir/document.ext']
159
- end
160
- it 'should collect layout filenames grouped by format' do
161
- @document.layouts['html'].should == ['doc/layouts/subdir/document.html']
162
- end
163
- it 'should collect target filename' do
164
- @document.target_for('html').should == 'output/subdir/document.html'
165
- end
166
- it 'should store the names of its dependencies grouped by format' do
167
- @document.deps_for('html').should == ['doc/pages/subdir/document.ext',
168
- 'doc/configs/subdir/document.yaml',
169
- File.expand_path('doc/pages/COMMON.yaml'),
170
- File.expand_path('doc/pages/subdir/COMMON.yaml'),
171
- 'doc/pages/subdir/document.yaml',
172
- 'doc/configs/required.yaml',
173
- 'doc/layouts/subdir/document.html']
174
- end
175
- it 'should fail if config file doesn''t exist' do
176
- @logger.should_receive(:error).with("Configuration file 'notexists' not found for '#{@document.source_fn}'!")
177
- @document.add_config('notexists')
178
- end
179
- it 'should warn if a configuration key doesn''t exist' do
180
- @logger.should_receive(:warn)
181
- @document.configuration['notexists']
182
- end
183
- it 'should associate a default value for a not defined configuration key' do
184
- @logger.should_receive(:warn)
185
- @document.configuration['notexists'].should == @document.default_configuration_value
186
- end
187
- describe ' and rendered in html' do
188
- before do
189
- @filter = mock('filter')
190
- @filter.stub!(:filter)
191
- end
192
- it 'should use erb and deplate-html filters' do
193
- @filter_factory.should_receive(:get).twice.with('erb', :anything).and_return(@filter)
194
- @filter_factory.should_receive(:get).with('deplate-html', :anything).and_return(@filter)
195
- @document.render
196
- end
197
- end
198
-
199
- describe ' and rendered in a unknown format' do
200
- it 'should fail if output format doesn''t exist' do
201
- @logger.should_receive(:error).with(/format.*is unknown/)
202
- @document.render(:format => 'notexists')
203
- end
204
- end
205
- end
206
-
207
- describe Dokkit::Resource::Document, ' when inizialized with document_with_many_targets.ext' do
208
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
209
- before(:all) do
210
- @initial_dir = Dir.pwd
211
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
212
- end
213
- before do
214
- @logger = logger
215
- @logger.stub!(:warn)
216
- @filter_factory = filter_factory
217
- @document = Dokkit::Resource::Document.new('doc/pages/document_with_many_targets.ext',
218
- configuration,
219
- @logger,
220
- cache,
221
- @resource_factory,
222
- @filter_factory
223
- )
224
- end
225
- after(:all) do
226
- Dir.chdir(@initial_dir)
227
- end
228
- it 'should collect all the targets grouped by format' do
229
- @document.targets.should == {
230
- # 'html' => { :target_fn => 'output/document_with_many_targets.html' },
231
- 'latex' => { :target_fn => 'output/document_with_many_targets.latex' },
232
- 'text' => { :target_fn => 'output/document_with_many_targets.text' },
233
- 'custom' => {
234
- :target_fn => 'output/document_with_many_targets.html',
235
- 'postfilter' => ['erb'],
236
- 'filter' => ['maruku-html']
237
- }
238
- }
239
- end
240
- it 'should return filter_chain for custom format' do
241
- @document.filters_for('custom').should == ['maruku-html']
242
- end
243
- # describe ' and rendered in html format' do
244
- # it 'should produce html output' do
245
- # result = "<h1>Title</h1>"
246
- # filter = mock('filter', :filter => result)
247
- # @filter_factory.should_receive(:get).with('deplate-html').and_return(filter)
248
- # @document.render(:format => 'html').should match(/#{result}/)
249
- # end
250
- # end
251
- describe ' and rendered in latex format' do
252
- before do
253
- @filter = mock('filter')
254
- @filter.stub!(:filter)
255
- end
256
- it 'should use erb and deplate-latex filters' do
257
- @filter_factory.should_receive(:get).twice.with('erb', :anything).and_return(@filter)
258
- @filter_factory.should_receive(:get).with('deplate-latex', :anything).and_return(@filter)
259
- @document.render(:format => 'latex')
260
- end
261
- end
262
- describe ' and rendered in text format' do
263
- before do
264
- @filter = mock('filter')
265
- @filter.stub!(:filter)
266
- end
267
- it 'should use erb and deplate-text filters' do
268
- @filter_factory.should_receive(:get).with('erb', :anything).and_return(@filter)
269
- @filter_factory.should_receive(:get).with('deplate-text', :anything).and_return(@filter)
270
- @document.render(:format => 'text')
271
- end
272
- end
273
- describe ' and rendered in custom format' do
274
- it 'should produce html output using maruku' do
275
- result = "<h1>Title</h1>"
276
- filter = mock('filter', :filter => result)
277
- @filter_factory.should_receive(:get).with('maruku-html', :anything).and_return(filter)
278
- @document.render(:format => 'custom').should match(/#{result}/)
279
- end
280
- end
281
- end
282
-
283
- describe Dokkit::Resource::Document, ' when inizialized with document_with_nested_layout.ext' do
284
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource, SpecHelper::Filter
285
- before(:all) do
286
- @initial_dir = Dir.pwd
287
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
288
- end
289
- before do
290
- @logger = logger
291
- @filter_factory = filter_factory
292
- @document = Dokkit::Resource::Document.new('doc/pages/document_with_nested_layout.ext',
293
- configuration,
294
- @logger,
295
- cache,
296
- @resource_factory,
297
- @filter_factory
298
- )
299
- end
300
- after(:all) do
301
- Dir.chdir(@initial_dir)
302
- end
303
- it 'should collect layouts' do
304
- @document.layouts['html'].should == ['doc/layouts/nested/nested.html', 'doc/layouts/container.html']
305
- end
306
- describe ' and rendered in html format' do
307
- it 'should produce html output using layout chain' do
308
- @filter_factory.should_receive(:get).with('erb', :anything).and_return(filter('<p>some content</p>'),
309
- filter('<div id="nested"><p>some content</p></div>'),
310
- filter('<html><div id="nested"><p>some content</p></div></html>'))
311
- @filter_factory.should_receive(:get).with('deplate-html', :anything).and_return(filter('<p>some content</p>'))
312
- render_result = @document.render
313
- render_result.should match(/\A\<html\>/)
314
- render_result.should match(/<div id=\"nested\"\>/)
315
- render_result.should match(/some content/)
316
- end
317
- end
318
- end
319
-
320
- describe Dokkit::Resource::Document, ' when inizialized with document_with_many_config.ext' do
321
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
322
- before(:all) do
323
- @initial_dir = Dir.pwd
324
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
325
- end
326
- before do
327
- @logger = logger
328
- @filter_factory = filter_factory
329
- @document = Dokkit::Resource::Document.new('doc/pages/document_with_many_config.ext',
330
- configuration,
331
- @logger,
332
- cache,
333
- @resource_factory,
334
- @filter_factory
335
- )
336
- end
337
- after(:all) do
338
- Dir.chdir(@initial_dir)
339
- end
340
- it 'should collect config files' do
341
- @document.config_fns.should include(config_path('config_1.yaml'), config_path('config_2.yaml'))
342
- end
343
- end
344
-
345
- describe Dokkit::Resource::Document, ' when inizialized with document_with_many_errors.ext' do
346
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
347
- before(:all) do
348
- @initial_dir = Dir.pwd
349
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
350
- end
351
- before do
352
- @logger = logger
353
- @filter_factory = filter_factory
354
- end
355
- after(:all) do
356
- Dir.chdir(@initial_dir)
357
- end
358
- it 'should warn that layouts not exist for html and custom output format' do
359
- @logger.should_receive(:warn).with(/Layout.* not exists/)
360
- @document = Dokkit::Resource::Document.new('doc/pages/document_with_many_errors.ext',
361
- configuration,
362
- @logger,
363
- cache,
364
- @resource_factory,
365
- @filter_factory)
366
- end
367
- it 'should not add not existent layout to deps array' do
368
- @logger.stub!(:warn)
369
- @document = Dokkit::Resource::Document.new('doc/pages/document_with_many_errors.ext',
370
- configuration,
371
- @logger,
372
- cache,
373
- resource_factory,
374
- @filter_factory)
375
- @document.deps['html'].should_not include(nil)
376
- end
377
- describe ' and rendered' do
378
- before do
379
- @logger.stub!(:warn)
380
- @document = Dokkit::Resource::Document.new('doc/pages/document_with_many_errors.ext',
381
- configuration,
382
- @logger,
383
- cache,
384
- @resource_factory,
385
- @filter_factory)
386
- end
387
- it 'should fail if rendered in :notexists format' do
388
- @logger.should_receive(:error)
389
- @document.render(:format => 'notexists')
390
- end
391
- end
392
- end
393
-
394
- describe Dokkit::Resource::Document, ' when inizialized with document_with_one_target' do
395
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
396
- before(:all) do
397
- @initial_dir = Dir.pwd
398
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
399
- end
400
- before do
401
- @logger = logger
402
- @logger.stub!(:warn)
403
- @filter_factory = filter_factory
404
- end
405
- before do
406
- @document = Dokkit::Resource::Document.new('doc/pages/document_with_one_target.ext',
407
- configuration,
408
- @logger,
409
- cache,
410
- @resource_factory,
411
- @filter_factory)
412
- end
413
- after(:all) do
414
- Dir.chdir(@initial_dir)
415
- end
416
- it 'should correctly setup targets' do
417
- @document.targets['text'].should == { :target_fn => output_path('document_with_one_target.text') }
418
- end
419
- end
420
-
421
- # describe Dokkit::Resource::Document, ' when inizialized with document_with_nil_target' do
422
- # include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
423
- # before(:all) do
424
- # @initial_dir = Dir.pwd
425
- # Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
426
- # end
427
- # before do
428
- # @logger = logger
429
- # @logger.stub!(:warn)
430
- # @filter_factory = filter_factory
431
- # end
432
- # after(:all) do
433
- # Dir.chdir(@initial_dir)
434
- # end
435
- # it 'should fail because target format doesn''t exist' do
436
- # @logger.should_receive(:error).with(/invalid target/i)
437
- # @document = Dokkit::Resource::Document.new('doc/pages/document_with_nil_target.ext',
438
- # configuration,
439
- # @logger,
440
- # cache,
441
- # @resource_factory,
442
- # @filter_factory)
443
- # end
444
- # end
445
-
446
- describe Dokkit::Resource::Document, ' when inizialized with document_with_not_defined_target' do
447
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
448
- before(:all) do
449
- @initial_dir = Dir.pwd
450
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
451
- end
452
- before do
453
- @logger = logger
454
- @logger.stub!(:warn)
455
- @filter_factory = filter_factory
456
- end
457
- after(:all) do
458
- Dir.chdir(@initial_dir)
459
- end
460
- it 'should fail because target format was not defined' do
461
- @logger.should_receive(:error).with(/must define format/i)
462
- @document = Dokkit::Resource::Document.new('doc/pages/document_with_not_defined_target.ext',
463
- configuration,
464
- @logger,
465
- cache,
466
- @resource_factory,
467
- @filter_factory)
468
- end
469
- end
470
-
471
- describe Dokkit::Resource::Document, ' when render partial' do
472
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
473
- before(:all) do
474
- @initial_dir = Dir.pwd
475
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
476
- end
477
- before do
478
- @partial = mock('partial')
479
- @partial.stub!(:render)
480
- @cache = mock('cache')
481
- @cache.stub!(:add_dependency)
482
- @resource_factory = resource_factory
483
- end
484
- before do
485
- # @document = Dokkit::Resource::Document.new('doc/pages/document_with_partial.ext',
486
- # configuration,
487
- # @logger,
488
- # cache,
489
- # @resource_factory,
490
- # @filter_factory)
491
- end
492
- after(:all) do
493
- Dir.chdir(@initial_dir)
494
- end
495
- it 'should instantiate a document object'
496
- it 'should cache document'
497
- end
498
-
499
- describe Dokkit::Resource::Document, 'post filtering' do
500
- include SpecHelper::Logger, SpecHelper::Cache, SpecHelper::Configuration, SpecHelper::Resource
501
- include SpecHelper::Filter
502
-
503
- before(:all) do
504
- @initial_dir = Dir.pwd
505
- Dir.chdir(File.join(File.dirname(__FILE__), SpecHelper::Path::TEST_DATA))
506
- end
507
- after(:all) do
508
- Dir.chdir(@initial_dir)
509
- end
510
- before do
511
- @filter_factory = filter_factory
512
- @document = Dokkit::Resource::Document.new('doc/pages/document_with_postfilter.ext',
513
- configuration,
514
- logger,
515
- cache,
516
- resource_factory,
517
- @filter_factory)
518
- end
519
- it 'should postfilter the document' do
520
- @filter_factory.should_receive(:get).twice.with('erb', :anything).twice.and_return(filter('filtered output'))
521
- @document.render
522
- end
523
- end