@@ -213,5 +213,42 @@ class UtilsTest < Minitest::Test
213213 assert !OneLogin ::RubySaml ::Utils . uri_match? ( destination , settings )
214214 end
215215 end
216+
217+ describe 'element_text' do
218+ it 'returns the element text' do
219+ element = REXML ::Document . new ( '<element>element text</element>' ) . elements . first
220+ assert_equal 'element text' , OneLogin ::RubySaml ::Utils . element_text ( element )
221+ end
222+
223+ it 'returns all segments of the element text' do
224+ element = REXML ::Document . new ( '<element>element <!-- comment -->text</element>' ) . elements . first
225+ assert_equal 'element text' , OneLogin ::RubySaml ::Utils . element_text ( element )
226+ end
227+
228+ it 'returns normalized element text' do
229+ element = REXML ::Document . new ( '<element>element & text</element>' ) . elements . first
230+ assert_equal 'element & text' , OneLogin ::RubySaml ::Utils . element_text ( element )
231+ end
232+
233+ it 'returns the CDATA element text' do
234+ element = REXML ::Document . new ( '<element><![CDATA[element & text]]></element>' ) . elements . first
235+ assert_equal 'element & text' , OneLogin ::RubySaml ::Utils . element_text ( element )
236+ end
237+
238+ it 'returns the element text with newlines and additional whitespace' do
239+ element = REXML ::Document . new ( "<element> element \n text </element>" ) . elements . first
240+ assert_equal " element \n text " , OneLogin ::RubySaml ::Utils . element_text ( element )
241+ end
242+
243+ it 'returns nil when element is nil' do
244+ assert_nil OneLogin ::RubySaml ::Utils . element_text ( nil )
245+ end
246+
247+ it 'returns empty string when element has no text' do
248+ element = REXML ::Document . new ( '<element></element>' ) . elements . first
249+ assert_equal '' , OneLogin ::RubySaml ::Utils . element_text ( element )
250+ end
251+
252+ end
216253 end
217254end
0 commit comments