undies 1.2.0 → 2.0.0

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.
@@ -1,77 +0,0 @@
1
- require "test_belt"
2
-
3
- require "stringio"
4
- require "undies/element_stack"
5
- require "undies/node"
6
-
7
- class Undies::ElementStack
8
-
9
- class BasicTest < Test::Unit::TestCase
10
- include TestBelt
11
-
12
- context 'an element stack'
13
- before { @es = Undies::ElementStack.new }
14
- subject { @es }
15
-
16
- should have_instance_method :push, :pop
17
- should have_reader :io
18
-
19
- should "be an Array" do
20
- assert_kind_of Array, subject
21
- end
22
-
23
- should "empty by default" do
24
- assert subject.empty?
25
- end
26
-
27
- should "compain when trying to push non-elements" do
28
- assert_raises ArgumentError do
29
- subject.push Undies::Node.new
30
- end
31
-
32
- assert_nothing_raised do
33
- subject << 1
34
- end
35
- end
36
-
37
- should "initialize with a first item if one is given" do
38
- stack = Undies::ElementStack.new(12)
39
- assert_equal [12], stack
40
- end
41
-
42
- end
43
-
44
- class StreamingTest < BasicTest
45
- context "when streaming"
46
- before do
47
- @output = ""
48
- @outstream = StringIO.new(@output)
49
- @es = Undies::ElementStack.new(nil, @outstream)
50
- end
51
-
52
- should "know its stream" do
53
- assert_same @outstream, subject.io
54
- end
55
-
56
- should "stream an elements start tag when that element is pushed" do
57
- subject.push(Undies::Element.new(Undies::ElementStack.new, "div") {})
58
- assert_equal "<div>", @output
59
- end
60
-
61
- should "stream an elements end tag when that element is popped" do
62
- elem = Undies::Element.new(Undies::ElementStack.new, "div") {}
63
- subject.push(elem)
64
- popped_elem = subject.pop
65
- assert_equal "<div></div>", @output
66
- assert_same elem, popped_elem
67
- end
68
-
69
- should "stream an element with no content when pushed/popped" do
70
- subject.push(Undies::Element.new(Undies::ElementStack.new, "span"))
71
- subject.pop
72
- assert_equal "<span />", @output
73
- end
74
-
75
- end
76
-
77
- end
@@ -1,6 +0,0 @@
1
- require 'undies/template'
2
- require 'undies/partial'
3
-
4
- class TestPartial < Undies::Template
5
- include Undies::PartialTemplate
6
- end
@@ -1,69 +0,0 @@
1
- require "test_belt"
2
- require "undies/node_list"
3
- require "undies/node"
4
-
5
- class Undies::NodeList
6
-
7
- class BasicTests < Test::Unit::TestCase
8
- include TestBelt
9
-
10
- context 'a node list'
11
- subject { Undies::NodeList.new }
12
- should have_instance_method :append
13
-
14
- should "be an Array" do
15
- assert_kind_of ::Array, subject
16
- end
17
-
18
- should "always init empty" do
19
- assert_equal 0, subject.size
20
- assert_equal 0, Undies::NodeList.new([1,2,3]).size
21
- end
22
-
23
- should "complain if you try to append something other than a node" do
24
- assert_raises ArgumentError do
25
- subject.append('hey!')
26
- end
27
- assert_raises ArgumentError do
28
- subject << 'hey!'
29
- end
30
- assert_nothing_raised do
31
- subject.append(Undies::Node.new('hey!'))
32
- subject.append(Undies::NodeList.new)
33
- subject << Undies::Node.new('hey!')
34
- end
35
- end
36
-
37
- end
38
-
39
- class NodeHandlingTests < BasicTests
40
- setup do
41
- @hey = Undies::Node.new "hey!"
42
- @you = Undies::Node.new " you..."
43
- @there = Undies::Node.new " there."
44
- @node_list = Undies::NodeList.new
45
- @node_list.append(@you)
46
- @node_list.append(@there)
47
- end
48
-
49
- should "append nodes with the 'append' method" do
50
- subject.append(@hey)
51
- assert_equal 1, subject.size
52
- end
53
-
54
- should "return the node when appending" do
55
- assert_equal @hey.object_id, subject.append(@hey).object_id
56
- end
57
-
58
- should "serialize to a string" do
59
- assert_equal " you... there.", @node_list.to_s
60
-
61
- to_serialize = Undies::NodeList.new
62
- to_serialize.append(@hey)
63
- to_serialize.append(@node_list)
64
- assert_equal "hey! you... there.", to_serialize.to_s
65
- end
66
-
67
- end
68
-
69
- end
@@ -1,100 +0,0 @@
1
- require "test_belt"
2
- require "undies/partial_data"
3
-
4
- class Undies::PartialLocals
5
-
6
- class BasicTest < Test::Unit::TestCase
7
- include TestBelt
8
-
9
- context 'partial data'
10
- subject { Undies::PartialLocals.new 'test/templates/index.html.rb' }
11
- should have_readers :path, :name
12
-
13
- should "be a kind of Hash" do
14
- assert subject.kind_of?(::Hash)
15
- end
16
-
17
- should "complain if now path given" do
18
- assert_raises ArgumentError do
19
- Undies::PartialLocals.new
20
- end
21
- end
22
-
23
- end
24
-
25
- class NameTest < BasicTest
26
-
27
- should "know its name given a file" do
28
- data = Undies::PartialLocals.new('test/templates/current.html.rb')
29
- assert_equal 'current', data.name
30
- end
31
-
32
- should "know its name given a file name with a leading char" do
33
- data = Undies::PartialLocals.new('test/templates/_partial.html.rb')
34
- assert_equal 'partial', data.name
35
- end
36
-
37
- should "know its name given a file name with multiple leading chars" do
38
- data = Undies::PartialLocals.new('test/templates/__partial.html.rb')
39
- assert_equal 'partial', data.name
40
- end
41
-
42
- end
43
-
44
- class ValuesTest < BasicTest
45
- before do
46
- @path = 'test/templates/index.html.rb'
47
- end
48
- subject { Undies::PartialLocals.new(@path) }
49
-
50
- should "not have any values by default" do
51
- assert_equal({}, subject)
52
- end
53
-
54
- should "know its values" do
55
- subject.values = {:name => 'A Name'}
56
- assert_equal({:name => "A Name"}, subject)
57
- end
58
-
59
- should "complain when values not given as a hash" do
60
- assert_raises ArgumentError do
61
- subject.values = "some data"
62
- end
63
- end
64
-
65
- should "force its object value to a string key" do
66
- assert !subject.has_key?(:index)
67
- assert !subject.has_key?('index')
68
- subject.object = "thing"
69
- assert !subject.has_key?(:index)
70
- assert subject.has_key?('index')
71
- end
72
-
73
- should "force its name value to a string key" do
74
- assert !subject.has_key?(:index)
75
- assert !subject.has_key?('index')
76
- subject.values = {:index => 'thing'}
77
- assert !subject.has_key?(:index)
78
- assert subject.has_key?('index')
79
- end
80
-
81
- should "set its values to its object" do
82
- subject.object = "thing"
83
- assert_equal({'index' => "thing"}, subject)
84
- end
85
-
86
- should "merge its object into the values" do
87
- subject.object = "thing"
88
- subject.values = {:color => "#FFF"}
89
- assert_equal({'index' => "thing", :color => "#FFF"}, subject)
90
- end
91
-
92
- should "overwrite its object with the values if needed" do
93
- subject.object = "thing"
94
- subject.values = {'index' => "#FFF"}
95
- assert_equal({'index' => "#FFF"}, subject)
96
- end
97
-
98
- end
99
-
100
- end
data/test/partial_test.rb DELETED
@@ -1,63 +0,0 @@
1
- require "test_belt"
2
-
3
- require "stringio"
4
- require "test/fixtures/partial_template"
5
-
6
- class Undies::PartialTests
7
-
8
- class BasicTest < Test::Unit::TestCase
9
- include TestBelt
10
-
11
- context 'partial'
12
- before do
13
- @path = 'test/templates/test.html.rb'
14
- @p = TestPartial.new @path
15
- end
16
- subject { @p }
17
-
18
- should "be a kind of Template" do
19
- assert subject.kind_of?(Undies::Template)
20
- end
21
-
22
- should "complain if no path given" do
23
- assert_raises ArgumentError do
24
- TestPartial.new
25
- end
26
- end
27
-
28
- end
29
-
30
- class LocalsTest < BasicTest
31
- before do
32
- @path = 'test/templates/index.html.rb'
33
- end
34
-
35
- should "know its data" do
36
- partial = TestPartial.new(@path, :name => 'A Name')
37
- assert_equal("A Name", partial.name)
38
- end
39
-
40
- should "know its object" do
41
- partial = TestPartial.new(@path, "thing")
42
- assert_equal("thing", partial.index)
43
- end
44
-
45
- end
46
-
47
- class StreamTest < BasicTest
48
- context "that is streaming"
49
-
50
- before do
51
- @output = ""
52
- @outstream = StringIO.new(@output)
53
- end
54
-
55
-
56
- should "should write to the stream as its being constructed" do
57
- TestPartial.new @path, @outstream
58
- assert_equal "<html><head></head><body><div>Hi</div></body></html>", @output
59
- end
60
-
61
- end
62
-
63
- end