rocketio 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,14 +0,0 @@
1
- require 'test/setup'
2
-
3
- spec do
4
- # overriding mock_controller cause when defining a controller
5
- # caller used to set controller's dirname
6
- # and we do not want to clobber test/ dir with template files
7
- def mock_controller path = :/, superclass = nil, &block
8
- path, superclass = :/, path if path.is_a?(Class)
9
- controller = Class.new(superclass || RocketIO::Controller)
10
- controller.map(path)
11
- controller.class_exec(&block) if block
12
- controller
13
- end
14
- end
@@ -1,106 +0,0 @@
1
- require 'setup'
2
-
3
- spec :template_vars do
4
- context :compositing do
5
- it 'inherits vars from superclass' do
6
- a = mock_controller {
7
- define_template_var(:a, 'a')
8
- }
9
- b = mock_controller(a) {}.new
10
- assert(b.template_vars[:a]) == 'a'
11
- end
12
-
13
- it 'complements vars inherited from superclass' do
14
- a = mock_controller {
15
- define_template_var(:a, 'a')
16
- }
17
- b = mock_controller(a) {
18
- define_template_var(:b, 'b')
19
- }.new
20
- assert(b.template_vars[:a]) == 'a'
21
- assert(b.template_vars[:b]) == 'b'
22
- end
23
-
24
- it 'overrides vars inherited from superclass' do
25
- a = mock_controller {
26
- define_template_var(:a, 'a')
27
- }
28
- b = mock_controller(a) {
29
- define_template_var(:a, 'b')
30
- }.new
31
- assert(b.template_vars[:a]) == 'b'
32
- end
33
-
34
- test '`inherit` overrides vars inherited from superclass' do
35
- a = mock_controller {
36
- define_template_var(:a, 'a')
37
- }
38
- b = mock_controller(a) {
39
- define_template_var(:a, 'b')
40
- }
41
- c = mock_controller(a) {
42
- import :template_vars, from: b
43
- }.new
44
- assert(c.template_vars[:a]) == 'b'
45
- end
46
-
47
- test '`inherit` complements vars inherited from superclass' do
48
- a = mock_controller {
49
- define_template_var(:a, 'a')
50
- }
51
- b = mock_controller(a) {
52
- define_template_var(:b, 'b')
53
- }
54
- c = mock_controller(a) {
55
- import :template_vars, from: b
56
- }.new
57
- assert(c.template_vars[:a]) == 'a'
58
- assert(c.template_vars[:b]) == 'b'
59
- end
60
-
61
- test '`inherit` overrides defined vars' do
62
- a = mock_controller {
63
- define_template_var(:a, 'a')
64
- }
65
- b = mock_controller {
66
- define_template_var(:a, 'b')
67
- import :template_vars, from: a
68
- }.new
69
- assert(b.template_vars[:a]) == 'a'
70
- end
71
- end
72
-
73
- context :rendering do
74
-
75
- it 'accepts plain value via second argument' do
76
- c = mock_controller {
77
- define_template(:get) {'<%= x %>'}
78
- define_template_var(:x, 'y')
79
- }.new
80
- assert(c.render(:get)) == 'y'
81
- end
82
-
83
- it 'accepts a proc as second argument' do
84
- c = mock_controller {
85
- define_template(:get) {'<%= x %>'}
86
- define_template_var(:x, -> {'y'})
87
- }.new
88
- assert(c.render(:get)) == 'y'
89
- end
90
-
91
- it 'accepts a block without second argument' do
92
- c = mock_controller {
93
- define_template(:get) {'<%= x %>'}
94
- define_template_var(:x) {'y'}
95
- }.new
96
- assert(c.render(:get)) == 'y'
97
- end
98
-
99
- it 'raises ArgumentError if no value nor block given' do
100
- assert { mock_controller {
101
- define_template_var(:x)
102
- }}.raise(ArgumentError)
103
- end
104
-
105
- end
106
- end
@@ -1 +0,0 @@
1
- hi
@@ -1 +0,0 @@
1
- -<%= yield %>-
@@ -1,146 +0,0 @@
1
- require 'setup'
2
-
3
- spec :templates do
4
- context :compositing do
5
- it 'inherits templates from superclass' do
6
- a = mock_controller {
7
- define_template(:a) {'a'}
8
- }
9
- b = mock_controller(a) {
10
- }.new
11
- assert(b.__send__ b.templates[:a]) == 'a'
12
- end
13
-
14
- it 'complements templates inherited from superclass' do
15
- a = mock_controller {
16
- define_template(:a) {'a'}
17
- }
18
- b = mock_controller(a) {
19
- define_template(:b) {'b'}
20
- }.new
21
- assert(b.__send__ b.templates[:a]) == 'a'
22
- assert(b.__send__ b.templates[:b]) == 'b'
23
- end
24
- #
25
- it 'overrides templates inherited from superclass' do
26
- a = mock_controller {
27
- define_template(:x) {'a'}
28
- }
29
- b = mock_controller(a) {
30
- define_template(:x) {'b'}
31
- }.new
32
- assert(b.__send__ b.templates[:x]) == 'b'
33
- end
34
-
35
- test '`inherit` overrides templates inherited from superclass' do
36
- a = mock_controller {
37
- define_template(:x) {'a'}
38
- }
39
- b = mock_controller(a) {
40
- define_template(:x) {'b'}
41
- }
42
- c = mock_controller(a) {
43
- import :templates, from: b
44
- }.new
45
- assert(c.__send__ c.templates[:x]) == 'b'
46
- end
47
-
48
- test '`inherit` complements templates inherited from superclass' do
49
- a = mock_controller {
50
- define_template(:a) {'a'}
51
- }
52
- b = mock_controller(a) {
53
- define_template(:b) {'b'}
54
- }
55
- c = mock_controller(a) {
56
- import :templates, from: b
57
- }.new
58
- assert(c.__send__ c.templates[:a]) == 'a'
59
- assert(c.__send__ c.templates[:b]) == 'b'
60
- end
61
-
62
- test '`inherit` overrides defined templates' do
63
- a = mock_controller {
64
- define_template(:x) {'a'}
65
- }
66
- b = mock_controller {
67
- define_template(:x) {'b'}
68
- import :templates, from: a
69
- }.new
70
- assert(b.__send__ b.templates[:x]) == 'a'
71
- end
72
-
73
- test '`inherit` complements defined templates' do
74
- a = mock_controller {
75
- define_template(:a) {'a'}
76
- }
77
- b = mock_controller {
78
- define_template(:b) {'b'}
79
- import :templates, from: a
80
- }.new
81
- assert(b.__send__ b.templates[:a]) == 'a'
82
- assert(b.__send__ b.templates[:b]) == 'b'
83
- end
84
-
85
- it 'overrides templates inherited via `inherit`' do
86
- a = mock_controller {
87
- define_template(:x) {'a'}
88
- }
89
- b = mock_controller {
90
- import :templates, from: a
91
- define_template(:x) {'b'}
92
- }.new
93
- assert(b.__send__ b.templates[:x]) == 'b'
94
- end
95
- end
96
-
97
- context :rendering do
98
-
99
- it 'uses a file with same name if only name given' do
100
- c = mock_controller {
101
- define_template :index
102
- }.new
103
- assert(c.render(:index)) == "/"
104
- end
105
-
106
- it 'raises a TemplateError if there is no file with same name' do
107
- template = rand.to_s
108
- c = mock_controller {
109
- define_template template
110
- }.new
111
- assert {c.render(template)}.raise RocketIO::TemplateError
112
- end
113
-
114
- it 'uses given file - file resides in controller dirname' do
115
- c = mock_controller {
116
- define_template :get, file: :items
117
- }.new
118
- assert(c.render(:get)) == "items\n"
119
- end
120
-
121
- it 'uses given file - file resides outside controller dirname' do
122
- c = mock_controller {
123
- define_template :get, file: './templates/a/get'
124
- }.new
125
- assert(c.render(:get)) == "hi\n"
126
- end
127
-
128
- it 'accepts a block for given file' do
129
- c = mock_controller {
130
- define_template :master, file: -> {@outside ? './templates/a/get' : :items}
131
- }.new
132
- assert(c.render(:master)) == "items\n"
133
- c.instance_variable_set(:@outside, true)
134
- assert(c.render(:master)) == "hi\n"
135
- end
136
-
137
- it 'accepts a block and uses returned value as template without searching for file' do
138
- c = mock_controller {
139
- define_template(:master) {@admin ? 'admin' : 'user'}
140
- }.new
141
- assert(c.render(:master)) == "user"
142
- c.instance_variable_set(:@admin, true)
143
- assert(c.render(:master)) == "admin"
144
- end
145
- end
146
- end