tsig_api 1.0.5
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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/MIT-LICENSE +20 -0
- data/README.md +4 -0
- data/Rakefile +23 -0
- data/init.rb +4 -0
- data/install.rb +1 -0
- data/lib/tsig_api.rb +30 -0
- data/lib/tsig_api/authorize.rb +15 -0
- data/lib/tsig_api/base.rb +108 -0
- data/lib/tsig_api/carrier.rb +16 -0
- data/lib/tsig_api/contact.rb +79 -0
- data/lib/tsig_api/group.rb +15 -0
- data/lib/tsig_api/message.rb +116 -0
- data/lib/tsig_api/remote_actions.rb +71 -0
- data/lib/tsig_api/team.rb +79 -0
- data/test/test_helper.rb +18 -0
- data/test/tsig_api_authorize_test.rb +71 -0
- data/test/tsig_api_carrier_test.rb +124 -0
- data/test/tsig_api_contact_test.rb +148 -0
- data/test/tsig_api_group_test.rb +90 -0
- data/test/tsig_api_message_test.rb +167 -0
- data/test/tsig_api_team_test.rb +182 -0
- data/test/tsig_api_test.rb +37 -0
- data/tsig_api.gemspec +21 -0
- data/tsig_api.yml +13 -0
- data/uninstall.rb +1 -0
- metadata +79 -0
@@ -0,0 +1,90 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/test_helper')
|
2
|
+
|
3
|
+
class TsigApiGroupTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
response_xml = <<-EOS
|
7
|
+
<?xml version='1.0'?>
|
8
|
+
<txtsig_response version="1.0">
|
9
|
+
<content type="response">
|
10
|
+
<item type="groups">
|
11
|
+
<element name='success'>
|
12
|
+
true
|
13
|
+
</element>
|
14
|
+
<element name='group_a'>
|
15
|
+
Group A
|
16
|
+
</element>
|
17
|
+
<element name='group_b'>
|
18
|
+
Foo
|
19
|
+
</element>
|
20
|
+
<element name='group_c'>
|
21
|
+
Group C
|
22
|
+
</element>
|
23
|
+
<element name='group_d'>
|
24
|
+
Group D
|
25
|
+
</element>
|
26
|
+
<element name='group_e'>
|
27
|
+
Group E
|
28
|
+
</element>
|
29
|
+
</item>
|
30
|
+
</content>
|
31
|
+
</txtsig_response>
|
32
|
+
EOS
|
33
|
+
|
34
|
+
error_xml = <<-EOS
|
35
|
+
<?xml version='1.0'?>
|
36
|
+
<txtsig_response version="1.0">
|
37
|
+
<content type="error">
|
38
|
+
<item type="error_description">
|
39
|
+
<element name="error_code">10</element>
|
40
|
+
<element name="error_text"><![CDATA[General Fault]]></element>
|
41
|
+
</item>
|
42
|
+
</content>
|
43
|
+
</txtsig_response>
|
44
|
+
EOS
|
45
|
+
|
46
|
+
net_response = stub("net_response")
|
47
|
+
net_response.body{response_xml}
|
48
|
+
net_error = stub("net_error")
|
49
|
+
net_error.body{error_xml}
|
50
|
+
|
51
|
+
@valid_response = TsigApi::RemoteActions::Response.new(true, net_response)
|
52
|
+
stub(@valid_response).body{response_xml}
|
53
|
+
@error_response = TsigApi::RemoteActions::Response.new(true, net_error)
|
54
|
+
stub(@error_response).body{error_xml}
|
55
|
+
|
56
|
+
TsigApi::Base.establish_connection(1234, 'joe', '123456789012345678901234567890ab')
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_should_initialize_carrier
|
60
|
+
g = TsigApi::Group.new
|
61
|
+
assert_equal TsigApi::Group, g.class
|
62
|
+
assert_equal :groups, g.class.remote_type
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_should_build_query_xml
|
66
|
+
g = TsigApi::Group.new
|
67
|
+
request = g.query
|
68
|
+
assert request.body.include?('<action type="list_groups">')
|
69
|
+
assert request.body.include?('<client_id><![CDATA[1234]]></client_id>')
|
70
|
+
assert request.body.include?('<api_username><![CDATA[joe]]></api_username>')
|
71
|
+
assert request.body.include?('<api_password><![CDATA[123456789012345678901234567890ab]]></api_password>')
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_should_send_request_and_parse_response
|
75
|
+
g = TsigApi::Group.new
|
76
|
+
request = g.query
|
77
|
+
stub(request).send_request{@valid_response}
|
78
|
+
content_type, response_hash = g.parse_response(request.send_request)
|
79
|
+
assert_equal content_type, "response"
|
80
|
+
assert_equal response_hash["group_a"], "Group A"
|
81
|
+
assert_equal response_hash["group_b"], "Foo"
|
82
|
+
|
83
|
+
# now we fake an error response
|
84
|
+
stub(request).send_request{@error_response}
|
85
|
+
content_type, response_hash = g.parse_response(request.send_request)
|
86
|
+
assert_equal content_type, "error"
|
87
|
+
assert_equal response_hash["error_code"], "10"
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/test_helper')
|
2
|
+
|
3
|
+
class TsigApiMessageTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
|
7
|
+
@tsig_message = TsigApi::Message.new("Group A")
|
8
|
+
|
9
|
+
create_response_xml = <<-EOS
|
10
|
+
<?xml version='1.0'?>
|
11
|
+
<txtsig_response version="1.0">
|
12
|
+
<content type="response">
|
13
|
+
<item type="message">
|
14
|
+
<element name='success'>1</element>
|
15
|
+
<element name='message_id'>15</element>
|
16
|
+
</item>
|
17
|
+
</content>
|
18
|
+
</txtsig_response>
|
19
|
+
EOS
|
20
|
+
|
21
|
+
query_response_xml = <<-EOS
|
22
|
+
<?xml version='1.0'?>
|
23
|
+
<txtsig_response version="1.0">
|
24
|
+
<content type="response">
|
25
|
+
<item type="message">
|
26
|
+
<element name='success'>1</element>
|
27
|
+
<element name='group'>a</element>
|
28
|
+
<element name='status'>PENDING</element>
|
29
|
+
<element name='date_sent'>2007-08-19 18:50:00</element>
|
30
|
+
<element name='broadcast_type'>team</element>
|
31
|
+
<element name='message'><![CDATA[sending messages is awesome]]></element>
|
32
|
+
</item>
|
33
|
+
</content>
|
34
|
+
</txtsig_response>
|
35
|
+
EOS
|
36
|
+
|
37
|
+
update_response_xml = <<-EOS
|
38
|
+
<?xml version='1.0'?>
|
39
|
+
<txtsig_response version="1.0">
|
40
|
+
<content type="response">
|
41
|
+
<item type="message">
|
42
|
+
<element name='success'>1</element>
|
43
|
+
<element name='message_id'>15</element>
|
44
|
+
</item>
|
45
|
+
</content>
|
46
|
+
</txtsig_response>
|
47
|
+
EOS
|
48
|
+
|
49
|
+
delete_response_xml = <<-EOS
|
50
|
+
<?xml version='1.0'?>
|
51
|
+
<txtsig_response version="1.0">
|
52
|
+
<content type="response">
|
53
|
+
<item type="message">
|
54
|
+
<element name='success'>1</element>
|
55
|
+
<element name='message_id'>15</element>
|
56
|
+
</item>
|
57
|
+
</content>
|
58
|
+
</txtsig_response>
|
59
|
+
EOS
|
60
|
+
|
61
|
+
error_xml = <<-EOS
|
62
|
+
<?xml version='1.0'?>
|
63
|
+
<txtsig_response version="1.0">
|
64
|
+
<content type="error">
|
65
|
+
<item type="error_description">
|
66
|
+
<element name="error_code">10</element>
|
67
|
+
<element name="error_text"><![CDATA[General Fault]]></element>
|
68
|
+
</item>
|
69
|
+
</content>
|
70
|
+
</txtsig_response>
|
71
|
+
EOS
|
72
|
+
|
73
|
+
create_response = stub("create_response")
|
74
|
+
create_response.body{create_response_xml}
|
75
|
+
query_response = stub("query_response")
|
76
|
+
query_response.body{query_response_xml}
|
77
|
+
update_response = stub("update_response")
|
78
|
+
update_response.body{update_response_xml}
|
79
|
+
delete_response = stub("delete_response")
|
80
|
+
delete_response.body{delete_response_xml}
|
81
|
+
net_error = stub("net_error")
|
82
|
+
net_error.body{error_xml}
|
83
|
+
|
84
|
+
@valid_create_response = TsigApi::RemoteActions::Response.new(true, create_response)
|
85
|
+
stub(@valid_create_response).body{create_response_xml}
|
86
|
+
@valid_query_response = TsigApi::RemoteActions::Response.new(true, query_response)
|
87
|
+
stub(@valid_query_response).body{query_response_xml}
|
88
|
+
@valid_update_response = TsigApi::RemoteActions::Response.new(true, update_response)
|
89
|
+
stub(@valid_update_response).body{update_response_xml}
|
90
|
+
@valid_delete_response = TsigApi::RemoteActions::Response.new(true, delete_response)
|
91
|
+
stub(@valid_delete_response).body{delete_response_xml}
|
92
|
+
@error_response = TsigApi::RemoteActions::Response.new(true, net_error)
|
93
|
+
stub(@error_response).body{error_xml}
|
94
|
+
|
95
|
+
@valid_message = {:broadcast_type => "team", :date_sent => Time.now + 3600, :send_now => false, :message => "sending messages is awesome"}
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_should_initialize_message
|
99
|
+
assert_equal @tsig_message.class, TsigApi::Message
|
100
|
+
assert_equal @tsig_message.class.remote_type, :message
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_should_build_create_xml
|
104
|
+
message_hash = @valid_message.merge({:has_contacts => [15], :has_teams => ["Team A"]})
|
105
|
+
request = @tsig_message.create(message_hash)
|
106
|
+
doc = REXML::Document.new(request.body)
|
107
|
+
assert_equal "Team A", REXML::XPath.first(doc, "//param[@name='has_teams']/team").get_text.to_s
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_should_send_create_request_and_parse_response
|
111
|
+
message_hash = @valid_message.merge({:has_contacts => [15], :has_teams => ["Team A"]})
|
112
|
+
request = @tsig_message.create(message_hash)
|
113
|
+
stub(request).send_request{@valid_create_response}
|
114
|
+
content_type, response_hash = @tsig_message.parse_response(request.send_request)
|
115
|
+
assert_equal content_type, "response"
|
116
|
+
assert_equal response_hash["success"], "1"
|
117
|
+
assert_equal response_hash["message_id"], "15"
|
118
|
+
# now we fake an error response
|
119
|
+
stub(request).send_request{@error_response}
|
120
|
+
content_type, response_hash = @tsig_message.parse_response(request.send_request)
|
121
|
+
assert_equal content_type, "error"
|
122
|
+
assert_equal response_hash["error_code"], "10"
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_should_send_query_and_parse_response
|
126
|
+
request = @tsig_message.query(:message_id => 15)
|
127
|
+
stub(request).send_request{@valid_query_response}
|
128
|
+
content_type, response_hash = @tsig_message.parse_response(request.send_request)
|
129
|
+
assert_equal "response", content_type
|
130
|
+
assert_equal response_hash["success"], "1"
|
131
|
+
assert_equal response_hash["group"], "a"
|
132
|
+
assert_equal "sending messages is awesome", response_hash["message"]
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_should_send_delete_and_parse_response
|
136
|
+
request = @tsig_message.delete(15)
|
137
|
+
stub(request).send_request{@valid_delete_response}
|
138
|
+
content_type, response_hash = @tsig_message.parse_response(request.send_request)
|
139
|
+
assert_equal "response", content_type
|
140
|
+
assert_equal response_hash["success"], "1"
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_should_send_update_request_and_parse_response
|
144
|
+
request = @tsig_message.update(15, :send_now => true)
|
145
|
+
stub(request).send_request{@valid_update_response}
|
146
|
+
content_type, response_hash = @tsig_message.parse_response(request.send_request)
|
147
|
+
assert_equal content_type, "response"
|
148
|
+
assert_equal response_hash["success"], "1"
|
149
|
+
assert_equal response_hash["message_id"], "15"
|
150
|
+
end
|
151
|
+
|
152
|
+
test 'create should return expected params' do
|
153
|
+
request = @tsig_message.create(
|
154
|
+
:broadcast_type => "team",
|
155
|
+
:send_at => '2020-01-02 03:04 PM',
|
156
|
+
:send_now => '0',
|
157
|
+
:message => 'This is a message',
|
158
|
+
:has_teams => [1]
|
159
|
+
)
|
160
|
+
assert_match %r(<param name='group'><!\[CDATA\[Group A\]\]></param>)im, request.body
|
161
|
+
assert_match %r(<param name='broadcast_type'>team</param>)im, request.body
|
162
|
+
assert_match %r(<param name='send_at'>2020-01-02 03:04 PM</param>)im, request.body
|
163
|
+
assert_match %r(<param name='send_now'>false</param>)im, request.body
|
164
|
+
assert_match %r(<param name='message'><!\[CDATA\[This is a message\]\]></param>)im, request.body
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
@@ -0,0 +1,182 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/test_helper')
|
2
|
+
|
3
|
+
class TsigApiTeamTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
|
7
|
+
list_response_xml = <<-EOS
|
8
|
+
<?xml version='1.0'?>
|
9
|
+
<txtsig_response version="1.0">
|
10
|
+
<content type="response">
|
11
|
+
<item type="team">
|
12
|
+
<element name='success'>
|
13
|
+
true
|
14
|
+
</element>
|
15
|
+
<element name='team_1'>
|
16
|
+
Team One
|
17
|
+
</element>
|
18
|
+
<element name='team_2'>
|
19
|
+
Team Two
|
20
|
+
</element>
|
21
|
+
<element name='team_3'>
|
22
|
+
Team Three
|
23
|
+
</element>
|
24
|
+
</item>
|
25
|
+
</content>
|
26
|
+
</txtsig_response>
|
27
|
+
EOS
|
28
|
+
|
29
|
+
create_response_xml = <<-EOS
|
30
|
+
<?xml version='1.0'?>
|
31
|
+
<txtsig_response version="1.0">
|
32
|
+
<content type="response">
|
33
|
+
<item type="team">
|
34
|
+
<element name="success">1</element>
|
35
|
+
<element name="team_id">15</element>
|
36
|
+
</item>
|
37
|
+
</content>
|
38
|
+
</txtsig_response>
|
39
|
+
EOS
|
40
|
+
|
41
|
+
query_response_xml = <<-EOS
|
42
|
+
<?xml version='1.0'?>
|
43
|
+
<txtsig_response version="1.0">
|
44
|
+
<content type="response">
|
45
|
+
<item type="team">
|
46
|
+
<element name="success">1</element>
|
47
|
+
<element name="group">a</element>
|
48
|
+
<element name="team_name">Excellent Team</element>
|
49
|
+
</item>
|
50
|
+
</content>
|
51
|
+
</txtsig_response>
|
52
|
+
EOS
|
53
|
+
|
54
|
+
update_response_xml = <<-EOS
|
55
|
+
<?xml version='1.0'?>
|
56
|
+
<txtsig_response version="1.0">
|
57
|
+
<content type="response">
|
58
|
+
<item type="team">
|
59
|
+
<element name="success">1</element>
|
60
|
+
<element name="team_id">15</element>
|
61
|
+
</item>
|
62
|
+
</content>
|
63
|
+
</txtsig_response>
|
64
|
+
EOS
|
65
|
+
|
66
|
+
delete_response_xml = <<-EOS
|
67
|
+
<?xml version='1.0'?>
|
68
|
+
<txtsig_response version="1.0">
|
69
|
+
<content type="response">
|
70
|
+
<item type="message">
|
71
|
+
<element name='success'>1</element>
|
72
|
+
</item>
|
73
|
+
</content>
|
74
|
+
</txtsig_response>
|
75
|
+
EOS
|
76
|
+
|
77
|
+
error_xml = <<-EOS
|
78
|
+
<?xml version='1.0'?>
|
79
|
+
<txtsig_response version="1.0">
|
80
|
+
<content type="error">
|
81
|
+
<item type="error_description">
|
82
|
+
<element name="error_code">10</element>
|
83
|
+
<element name="error_text"><![CDATA[General Fault]]></element>
|
84
|
+
</item>
|
85
|
+
</content>
|
86
|
+
</txtsig_response>
|
87
|
+
EOS
|
88
|
+
|
89
|
+
list_response = stub('list_response')
|
90
|
+
list_response.body(list_response_xml)
|
91
|
+
create_response = stub('create_response')
|
92
|
+
create_response.body(create_response_xml)
|
93
|
+
query_response = stub('query_response')
|
94
|
+
query_response.body(query_response_xml)
|
95
|
+
update_response = stub('update_response')
|
96
|
+
update_response.body(update_response_xml)
|
97
|
+
delete_response = stub('delete_response')
|
98
|
+
delete_response.body(delete_response_xml)
|
99
|
+
error_response = stub('error_response')
|
100
|
+
error_response.body(error_xml)
|
101
|
+
|
102
|
+
@valid_list_response = TsigApi::RemoteActions::Response.new(true, list_response)
|
103
|
+
stub(@valid_list_response).body{list_response_xml}
|
104
|
+
@valid_create_response = TsigApi::RemoteActions::Response.new(true, create_response)
|
105
|
+
stub(@valid_create_response).body{create_response_xml}
|
106
|
+
@valid_query_response = TsigApi::RemoteActions::Response.new(true, query_response)
|
107
|
+
stub(@valid_query_response).body{query_response_xml}
|
108
|
+
@valid_update_response = TsigApi::RemoteActions::Response.new(true, update_response)
|
109
|
+
stub(@valid_update_response).body{update_response_xml}
|
110
|
+
@valid_delete_response = TsigApi::RemoteActions::Response.new(true, delete_response)
|
111
|
+
stub(@valid_delete_response).body{delete_response_xml}
|
112
|
+
@error_response = TsigApi::RemoteActions::Response.new(true, error_response)
|
113
|
+
stub(@error_response).body{error_xml}
|
114
|
+
|
115
|
+
@tsig_team = TsigApi::Team.new("group a")
|
116
|
+
|
117
|
+
@valid_team = {:name => "Excellent Team"}
|
118
|
+
end
|
119
|
+
|
120
|
+
test 'should_initialize_team' do
|
121
|
+
assert_equal @tsig_team.class, TsigApi::Team
|
122
|
+
assert_equal @tsig_team.class.remote_type, :team
|
123
|
+
end
|
124
|
+
|
125
|
+
test 'should_build_create_xml' do
|
126
|
+
team_hash = @valid_team.merge({:has_contacts => [1, 2]})
|
127
|
+
request = @tsig_team.create(team_hash)
|
128
|
+
doc = REXML::Document.new(request.body)
|
129
|
+
assert_equal "Excellent Team", REXML::XPath.first(doc, "//param[@name='team_name']").get_text.to_s
|
130
|
+
end
|
131
|
+
|
132
|
+
test 'should_send_list_request_and_parse_response' do
|
133
|
+
request = @tsig_team.list
|
134
|
+
stub(request).send_request{@valid_list_response}
|
135
|
+
content_type, response_hash = @tsig_team.parse_response(request.send_request)
|
136
|
+
|
137
|
+
assert_equal 'response', content_type
|
138
|
+
assert_equal 3, response_hash.select{|k,v| k =~ /^team_\d/}.size
|
139
|
+
assert_equal 'Team One', response_hash['team_1']
|
140
|
+
end
|
141
|
+
|
142
|
+
test 'should_send_create_request_and_parse_response' do
|
143
|
+
team_hash = @valid_team.merge({:has_contacts => [1, 2]})
|
144
|
+
request = @tsig_team.create(team_hash)
|
145
|
+
stub(request).send_request{@valid_create_response}
|
146
|
+
content_type, response_hash = @tsig_team.parse_response(request.send_request)
|
147
|
+
assert_equal content_type, "response"
|
148
|
+
assert_equal response_hash["success"], "1"
|
149
|
+
assert_equal response_hash["team_id"], "15"
|
150
|
+
# now we fake an error response
|
151
|
+
stub(request).send_request{@error_response}
|
152
|
+
content_type, response_hash = @tsig_team.parse_response(request.send_request)
|
153
|
+
assert_equal content_type, "error"
|
154
|
+
assert_equal response_hash["error_code"], "10"
|
155
|
+
end
|
156
|
+
|
157
|
+
test 'should_send_query_and_parse_response' do
|
158
|
+
request = @tsig_team.query(:team_id => 15)
|
159
|
+
stub(request).send_request{@valid_query_response}
|
160
|
+
content_type, response_hash = @tsig_team.parse_response(request.send_request)
|
161
|
+
assert_equal "response", content_type
|
162
|
+
assert_equal response_hash["success"], "1"
|
163
|
+
assert_equal "Excellent Team", response_hash["team_name"]
|
164
|
+
end
|
165
|
+
|
166
|
+
test 'should_send_delete_and_parse_response' do
|
167
|
+
request = @tsig_team.delete(15)
|
168
|
+
stub(request).send_request{@valid_delete_response}
|
169
|
+
content_type, response_hash = @tsig_team.parse_response(request.send_request)
|
170
|
+
assert_equal "response", content_type
|
171
|
+
assert_equal response_hash["success"], "1"
|
172
|
+
end
|
173
|
+
|
174
|
+
test 'should_send_update_request_and_parse_response' do
|
175
|
+
request = @tsig_team.update(15, {:name => "Woo"})
|
176
|
+
stub(request).send_request{@valid_query_response}
|
177
|
+
content_type, response_hash = @tsig_team.parse_response(request.send_request)
|
178
|
+
assert_equal content_type, "response"
|
179
|
+
assert_equal response_hash["success"], "1"
|
180
|
+
end
|
181
|
+
|
182
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '/test_helper')
|
2
|
+
|
3
|
+
class TsigApiTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
def test_text_from_flash
|
6
|
+
str = "
|
7
|
+
<div id=\\'error-message-container\\'><div class=\\'flash error\\'>
|
8
|
+
<a class=\\\"float-right small-text\\\" href=\\\"#\\\" onclick=\\\"hideErrorMessage(); return false;\\\">[Hide this]</a>
|
9
|
+
<div class=\\\"message-title\\\"><span class=\\\"error-icon\\\">!</span></div>
|
10
|
+
<div class=\\\"message-contents\\\">Please correct the following error(s):
|
11
|
+
<ul><li>Please make one or more selections for Teams.</li></ul></div>
|
12
|
+
<div class=\\\"clear\\\"> </div></div></div>
|
13
|
+
"
|
14
|
+
assert_equal ['Please make one or more selections for Teams.'], TsigApi::text_from_flash(str)
|
15
|
+
|
16
|
+
str = "
|
17
|
+
<div id=\\'error-message-container\\'><div class=\\'flash error\\'>
|
18
|
+
<a class=\\\"float-right small-text\\\" href=\\\"#\\\" onclick=\\\"hideErrorMessage(); return false;\\\">[Hide this]</a>
|
19
|
+
<div class=\\\"message-title\\\"><span class=\\\"error-icon\\\">!</span></div>
|
20
|
+
<div class=\\\"message-contents\\\">Please correct the following error(s):
|
21
|
+
<ul><li>First message</li> <li>Second message</li>
|
22
|
+
<li>Third</li></ul></div>
|
23
|
+
<div class=\\\"clear\\\"> </div></div></div>
|
24
|
+
"
|
25
|
+
assert_equal ['First message', 'Second message', 'Third'], TsigApi::text_from_flash(str)
|
26
|
+
|
27
|
+
str = "
|
28
|
+
<div id=\\'error-message-container\\'><div class=\\'flash error\\'>
|
29
|
+
<a class=\\\"float-right small-text\\\" href=\\\"#\\\" onclick=\\\"hideErrorMessage(); return false;\\\">[Hide this]</a>
|
30
|
+
<div class=\\\"message-title\\\"><span class=\\\"error-icon\\\">!</span></div>
|
31
|
+
<div class=\\\"message-contents\\\">Please correct the following error(s):</div>
|
32
|
+
<div class=\\\"clear\\\"> </div></div></div>
|
33
|
+
"
|
34
|
+
assert_equal [], TsigApi::text_from_flash(str)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|