waw 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/waw-crawl +26 -0
- data/lib/waw.rb +3 -3
- data/lib/waw/commands/command.rb +12 -4
- data/lib/waw/commands/crawl_command.rb +46 -0
- data/lib/waw/commands/profile_command.rb +5 -1
- data/lib/waw/controllers/action/action.rb +11 -0
- data/lib/waw/controllers/action/js_generation.rb +11 -2
- data/lib/waw/controllers/static/match.rb +4 -1
- data/lib/waw/controllers/static/matcher.rb +35 -0
- data/lib/waw/controllers/static/waw_access.rb +28 -15
- data/lib/waw/controllers/static/waw_access_dsl.rb +9 -0
- data/lib/waw/controllers/static_controller.rb +5 -2
- data/lib/waw/crawler.rb +176 -0
- data/lib/waw/crawler/crawler_listener.rb +64 -0
- data/lib/waw/crawler/crawler_options.rb +42 -0
- data/lib/waw/kern/living_state.rb +93 -0
- data/lib/waw/scope_utils.rb +1 -0
- data/lib/waw/tools/mail/mail_agent.rb +1 -1
- data/lib/waw/validation.rb +3 -0
- data/lib/waw/validation/datetime_validator.rb +53 -0
- data/lib/waw/wspec/browser.rb +4 -2
- data/test/bricks/error_handler/test/test_all.rb +20 -0
- data/test/bricks/static_controller/config/test.cfg +2 -0
- data/test/bricks/static_controller/logs/webapp.log +84 -0
- data/test/bricks/static_controller/test/static_controller.wspec +12 -0
- data/test/bricks/static_controller/test/test_all.rb +20 -0
- data/test/bricks/static_controller/waw.deploy +1 -0
- data/test/bricks/static_controller/waw.routing +5 -0
- data/test/bricks/test_all.rb +8 -0
- data/test/spec/controllers/static/waw_access_spec.rb +3 -3
- data/test/spec/test_all.rb +0 -2
- data/test/spec/validation/datetime_validation_spec.rb +92 -0
- data/test/unit/test_all.rb +1 -0
- data/test/unit/waw/controllers/static/logs/webapp.log +22 -0
- metadata +23 -6
@@ -0,0 +1,20 @@
|
|
1
|
+
# Requires
|
2
|
+
begin
|
3
|
+
top = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', '..', 'lib'))
|
4
|
+
$LOAD_PATH.unshift(top)
|
5
|
+
require 'waw'
|
6
|
+
rescue LoadError => ex
|
7
|
+
require 'rubygems'
|
8
|
+
gem 'waw', '>= 0.2.0'
|
9
|
+
require 'waw'
|
10
|
+
end
|
11
|
+
require 'waw/wspec/runner'
|
12
|
+
|
13
|
+
# Load the waw application for having configuration
|
14
|
+
app = Waw.autoload(__FILE__)
|
15
|
+
raise "Tests cannot be run in production mode, to avoid modifying real database "\
|
16
|
+
"or sending spam mails to real users." unless ['devel', 'test'].include?(app.config.deploy_mode)
|
17
|
+
|
18
|
+
# Load all tests now
|
19
|
+
test_files = Dir[File.join(File.dirname(__FILE__), '**/*.wspec')]
|
20
|
+
test_files.each { |file| load(file) }
|
@@ -0,0 +1 @@
|
|
1
|
+
test
|
@@ -69,9 +69,9 @@ describe ::Waw::StaticController::WawAccess do
|
|
69
69
|
match(true) { :is404 }
|
70
70
|
end
|
71
71
|
EOF
|
72
|
-
wa.
|
73
|
-
wa.
|
74
|
-
wa.
|
72
|
+
wa.do_path_serve('waw_access_spec.rb').should == :file
|
73
|
+
wa.do_path_serve('').should == :directory
|
74
|
+
wa.do_path_serve('nothing/at/all').should == :is404
|
75
75
|
end
|
76
76
|
|
77
77
|
it "should not provide block conflict between validators and matching rules" do
|
data/test/spec/test_all.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
|
2
2
|
require 'waw'
|
3
|
-
require 'spec/autorun'
|
4
3
|
require File.join(File.dirname(__FILE__), 'fixtures')
|
5
4
|
test_files = Dir[File.join(File.dirname(__FILE__), '**/*_spec.rb')]
|
6
5
|
test_files.each { |file|
|
7
6
|
require(file)
|
8
7
|
}
|
9
|
-
|
@@ -0,0 +1,92 @@
|
|
1
|
+
describe "datetime proposed validation" do
|
2
|
+
|
3
|
+
describe "with default options" do
|
4
|
+
|
5
|
+
let(:date){
|
6
|
+
@date_validator ||= ::Waw::Validation.signature {
|
7
|
+
validation [:date, :time], datetime, :bad_date
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
it "should block missing values" do
|
12
|
+
date.blocks?(:date => nil).should be_true
|
13
|
+
date.blocks?(:date => "").should be_true
|
14
|
+
date.blocks?(:date => " ").should be_true
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should be robust to strange values" do
|
18
|
+
date.blocks?(:date => nil).should be_true
|
19
|
+
date.blocks?(:date => 12).should be_true
|
20
|
+
date.blocks?(:date => self).should be_true
|
21
|
+
date.blocks?(:date => Class).should be_true
|
22
|
+
date.blocks?(:date => self).should be_true
|
23
|
+
date.blocks?(:date => "hello", :time => "12:16").should be_true
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should allow valid date/time pairs" do
|
27
|
+
date.allows?({:date => "2010/04/25", :time => "12:15"}).should be_true
|
28
|
+
date.allows?({:date => "2010/04/25", :time => "00:00"}).should be_true
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should correctly convert date/time pairs' do
|
32
|
+
result, converted = date.apply({:date => "2010/04/25", :time => "12:15"})
|
33
|
+
converted.should == {:date => Date.parse("2010/04/25"), :time => Time.parse("2010/04/25 12:15")}
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should block invalid dates" do
|
37
|
+
date.blocks?(:date => "65/12/2010", :time => "12:16").should be_true
|
38
|
+
date.blocks?(:date => "2010/10/12", :time => "28:16").should be_true
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "when a specific date format has been set" do
|
44
|
+
|
45
|
+
let(:date){
|
46
|
+
@date_validator ||= ::Waw::Validation.signature {
|
47
|
+
validation [:date, :time], datetime(:date_format => "%d/%m/%y"), :bad_date
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
it "should block non-conforming dates" do
|
52
|
+
date.blocks?(:date => "2010/12/1", :time => "12:16").should be_true
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should allow conforming dates" do
|
56
|
+
date.allows?(:date => "2/12/10", :time => "12:16").should be_true
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should correctly convert date/time pairs' do
|
60
|
+
result, converted = date.apply({:date => "25/04/10", :time => "11:00"})
|
61
|
+
converted.should == {:date => Date.parse("2010/04/25"), :time => Time.parse("2010/04/25 11:00")}
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "when a default time should be provided" do
|
67
|
+
|
68
|
+
let(:date){
|
69
|
+
@date_validator ||= ::Waw::Validation.signature {
|
70
|
+
validation :time, regexp(/^\d{2}:\d{2}$/) | default('12:15'), :bad_time
|
71
|
+
validation [:date, :time], datetime, :bad_date
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
it 'should correctly convert date/time pairs' do
|
76
|
+
result, converted = date.apply({:date => "2010/04/25", :time => "11:00"})
|
77
|
+
converted.should == {:date => Date.parse("2010/04/25"), :time => Time.parse("2010/04/25 11:00")}
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should correctly convert when time is missing' do
|
81
|
+
result, converted = date.apply({:date => "2010/04/25"})
|
82
|
+
converted.should == {:date => Date.parse("2010/04/25"), :time => Time.parse("2010/04/25 12:15")}
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should block invalid date/time pairs" do
|
86
|
+
date.blocks?(:date => "65/12/2010", :time => "12:16").should be_true
|
87
|
+
date.blocks?(:date => "2010/10/12", :time => "28:16").should be_true
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
data/test/unit/test_all.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# Logfile created on Wed Oct 27 13:52:01 +0200 2010 by logger.rb/22283
|
2
|
+
I, [2010-10-27T13:52:01.566158 #37241] INFO -- : Waw::Kern::App: load stage 1 sucessfull ()
|
3
|
+
I, [2010-10-27T13:52:01.566260 #37241] INFO -- : Waw::Kern::App: load stage 2 sucessfull
|
4
|
+
W, [2010-10-27T13:52:01.566376 #37241] WARN -- : Ignoring the resources folder (not readable)... something will probably fail later!
|
5
|
+
I, [2010-10-27T13:52:01.566446 #37241] INFO -- : Waw::Kern::App: load stage 3 sucessfull (resources)
|
6
|
+
I, [2010-10-27T13:52:01.566585 #37241] INFO -- : Waw::Kern::App: load stage 4 sucessfull (using waw.routing)
|
7
|
+
I, [2010-10-27T13:52:01.566813 #37241] INFO -- : Waw::Kern::App: load stage 5 sucessfull (load hooks executed)
|
8
|
+
I, [2010-10-27T13:52:01.566875 #37241] INFO -- : Waw::Kern::App: application loaded successfully, enjoy!
|
9
|
+
I, [2010-10-27T13:52:01.567830 #37241] INFO -- : Waw::Kern::App: load stage 1 sucessfull ()
|
10
|
+
I, [2010-10-27T13:52:01.567898 #37241] INFO -- : Waw::Kern::App: load stage 2 sucessfull
|
11
|
+
W, [2010-10-27T13:52:01.568062 #37241] WARN -- : Ignoring the resources folder (not readable)... something will probably fail later!
|
12
|
+
I, [2010-10-27T13:52:01.568136 #37241] INFO -- : Waw::Kern::App: load stage 3 sucessfull (resources)
|
13
|
+
I, [2010-10-27T13:52:01.568496 #37241] INFO -- : Waw::Kern::App: load stage 4 sucessfull (using waw.routing)
|
14
|
+
I, [2010-10-27T13:52:01.568690 #37241] INFO -- : Waw::Kern::App: load stage 5 sucessfull (load hooks executed)
|
15
|
+
I, [2010-10-27T13:52:01.568754 #37241] INFO -- : Waw::Kern::App: application loaded successfully, enjoy!
|
16
|
+
I, [2010-10-27T13:52:01.569518 #37241] INFO -- : Waw::Kern::App: load stage 1 sucessfull ()
|
17
|
+
I, [2010-10-27T13:52:01.569585 #37241] INFO -- : Waw::Kern::App: load stage 2 sucessfull
|
18
|
+
W, [2010-10-27T13:52:01.569661 #37241] WARN -- : Ignoring the resources folder (not readable)... something will probably fail later!
|
19
|
+
I, [2010-10-27T13:52:01.569722 #37241] INFO -- : Waw::Kern::App: load stage 3 sucessfull (resources)
|
20
|
+
I, [2010-10-27T13:52:01.569835 #37241] INFO -- : Waw::Kern::App: load stage 4 sucessfull (using waw.routing)
|
21
|
+
I, [2010-10-27T13:52:01.570080 #37241] INFO -- : Waw::Kern::App: load stage 5 sucessfull (load hooks executed)
|
22
|
+
I, [2010-10-27T13:52:01.570144 #37241] INFO -- : Waw::Kern::App: application loaded successfully, enjoy!
|
metadata
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
name: waw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
hash: 19
|
5
|
-
prerelease:
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bernard Lambeau
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-01-29 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -33,6 +33,7 @@ extra_rdoc_files:
|
|
33
33
|
- LICENCE.rdoc
|
34
34
|
files:
|
35
35
|
- lib/waw/commands/command.rb
|
36
|
+
- lib/waw/commands/crawl_command.rb
|
36
37
|
- lib/waw/commands/profile_command.rb
|
37
38
|
- lib/waw/commands/start_command.rb
|
38
39
|
- lib/waw/config.rb
|
@@ -46,9 +47,13 @@ files:
|
|
46
47
|
- lib/waw/controllers/json_controller.rb
|
47
48
|
- lib/waw/controllers/no_cache.rb
|
48
49
|
- lib/waw/controllers/static/match.rb
|
50
|
+
- lib/waw/controllers/static/matcher.rb
|
49
51
|
- lib/waw/controllers/static/waw_access.rb
|
50
52
|
- lib/waw/controllers/static/waw_access_dsl.rb
|
51
53
|
- lib/waw/controllers/static_controller.rb
|
54
|
+
- lib/waw/crawler/crawler_listener.rb
|
55
|
+
- lib/waw/crawler/crawler_options.rb
|
56
|
+
- lib/waw/crawler.rb
|
52
57
|
- lib/waw/default_config.cfg
|
53
58
|
- lib/waw/environment_utils.rb
|
54
59
|
- lib/waw/errors.rb
|
@@ -102,6 +107,7 @@ files:
|
|
102
107
|
- lib/waw/validation/boolean_validator.rb
|
103
108
|
- lib/waw/validation/comparison_validations.rb
|
104
109
|
- lib/waw/validation/date_validator.rb
|
110
|
+
- lib/waw/validation/datetime_validator.rb
|
105
111
|
- lib/waw/validation/default_validator.rb
|
106
112
|
- lib/waw/validation/dsl_ruby_extensions.rb
|
107
113
|
- lib/waw/validation/errors.rb
|
@@ -137,8 +143,16 @@ files:
|
|
137
143
|
- test/bricks/error_handler/config/test.cfg
|
138
144
|
- test/bricks/error_handler/logs/webapp.log
|
139
145
|
- test/bricks/error_handler/test/error_handler.wspec
|
146
|
+
- test/bricks/error_handler/test/test_all.rb
|
140
147
|
- test/bricks/error_handler/waw.deploy
|
141
148
|
- test/bricks/error_handler/waw.routing
|
149
|
+
- test/bricks/static_controller/config/test.cfg
|
150
|
+
- test/bricks/static_controller/logs/webapp.log
|
151
|
+
- test/bricks/static_controller/test/static_controller.wspec
|
152
|
+
- test/bricks/static_controller/test/test_all.rb
|
153
|
+
- test/bricks/static_controller/waw.deploy
|
154
|
+
- test/bricks/static_controller/waw.routing
|
155
|
+
- test/bricks/test_all.rb
|
142
156
|
- test/integration/waw_create_integration_test.rb
|
143
157
|
- test/spec/assumptions_spec.rb
|
144
158
|
- test/spec/controllers/action_controller_spec.rb
|
@@ -165,6 +179,7 @@ files:
|
|
165
179
|
- test/spec/validation/array_validation_spec.rb
|
166
180
|
- test/spec/validation/array_validator_spec.rb
|
167
181
|
- test/spec/validation/date_validation_spec.rb
|
182
|
+
- test/spec/validation/datetime_validation_spec.rb
|
168
183
|
- test/spec/validation/default_validation_spec.rb
|
169
184
|
- test/spec/validation/disjuctive_validation_spec.rb
|
170
185
|
- test/spec/validation/errors_spec.rb
|
@@ -190,6 +205,7 @@ files:
|
|
190
205
|
- test/unit/waw/controllers/static/example/index.html
|
191
206
|
- test/unit/waw/controllers/static/example/js/example.js
|
192
207
|
- test/unit/waw/controllers/static/example/pages/hello.wtpl
|
208
|
+
- test/unit/waw/controllers/static/logs/webapp.log
|
193
209
|
- test/unit/waw/controllers/static/waw_access_test.rb
|
194
210
|
- test/unit/waw/ext/rack_test.rb
|
195
211
|
- test/unit/waw/resource_collection_test.rb
|
@@ -202,6 +218,7 @@ files:
|
|
202
218
|
- test/unit/waw/wspec/html_analysis_test.html
|
203
219
|
- test/unit/waw/wspec/html_analysis_test.rb
|
204
220
|
- bin/waw
|
221
|
+
- bin/waw-crawl
|
205
222
|
- bin/waw-profile
|
206
223
|
- bin/waw-start
|
207
224
|
- bin/wspec
|
@@ -264,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
264
281
|
requirements: []
|
265
282
|
|
266
283
|
rubyforge_project:
|
267
|
-
rubygems_version: 1.
|
284
|
+
rubygems_version: 1.4.2
|
268
285
|
signing_key:
|
269
286
|
specification_version: 3
|
270
287
|
summary: Waw - making web applications simple
|