GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Rubygem
Description: Resource-oriented open source Ruby framework for Web apps.
Homepage: http://rubywaves.com/
Clone URL: git://github.com/dyoder/waves.git
filter specs
automatthew (author)
Thu Aug 07 12:35:38 -0700 2008
commit  840f9bd3a39ddabe10d370f3dc415191626cb174
tree    60ccc9c9757f9443a248d786e1c1c9584a85c35e
parent  27d873f0ae0ed07c054cf13bfee3a0c9d8030d7b
...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
0
@@ -0,0 +1,74 @@
0
+# require 'test_helper' because RubyMate needs help
0
+require File.join(File.dirname(__FILE__) , "helpers")
0
+
0
+# N.B. All of these specs require that the dispatcher actually work. Unit testing somewhere else
0
+# will help prevent mysterious spec failures or regressions.
0
+
0
+STATE = []
0
+
0
+describe "A before filter" do
0
+
0
+ before do
0
+ mapping.clear
0
+ mapping.response( :get => [ "somewhere" ] ) { "main" }
0
+ end
0
+
0
+ it "is evaluated before the action" do
0
+ mapping.before( :mapping_name, :get => [ "somewhere"] ) do
0
+ response.body << "before, "
0
+ end
0
+
0
+ mock_request.get("/somewhere").body.should == "before, main"
0
+ end
0
+
0
+end
0
+
0
+describe "An after filter" do
0
+
0
+ before do
0
+ STATE[0] = "foo"
0
+ mapping.clear
0
+ handle( ArgumentError ) { response.status = 404 }
0
+ mapping.response( :get => [ "somewhere" ] ) { "main" }
0
+ end
0
+
0
+ it "is evaluated after the action" do
0
+ mapping.after( :mapping_name, :get => [ "somewhere"] ) do
0
+ response.body << ", after"
0
+ end
0
+
0
+ mock_request.get("/somewhere").body.should == "main, after"
0
+ end
0
+
0
+ it "is not evaluated if the action raises an exception" do
0
+ mapping.response( :get => [ "elsewhere" ] ) { raise ArgumentError }
0
+ mapping.after( :mapping_name, :get => [ "elsewhere"] ) do
0
+ STATE[0] = "bar"
0
+ end
0
+
0
+ mock_request.get("/elsewhere")
0
+ STATE[0].should == "foo"
0
+ end
0
+
0
+end
0
+
0
+describe "An always filter" do
0
+
0
+ before do
0
+ STATE[0] = "foo"
0
+ mapping.clear
0
+ handle( ArgumentError ) { response.status = 404 }
0
+
0
+ mapping.response( :get => [ "somewhere" ] ) { raise ArgumentError }
0
+ end
0
+
0
+ it "is evaluated no matter what horrible things may happen in the action" do
0
+ mapping.always( :mapping_name, :get => [ "somewhere"] ) do
0
+ STATE[0] = "bar"
0
+ end
0
+
0
+ mock_request.get("/somewhere")
0
+ STATE.should == ["bar"]
0
+ end
0
+
0
+end
0
\ No newline at end of file

Comments

    No one has commented yet.