PageRenderTime 49ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/library/xslt/test/unit/xm_xslt_test_stylesheet_builder.e

http://github.com/gobo-eiffel/gobo
Specman e | 435 lines | 404 code | 21 blank | 10 comment | 7 complexity | 56213b15eb6acc0d90f4b941a76208e2 MD5 | raw file
  1. note
  2. description:
  3. "Test building XSLT stylesheet tree"
  4. library: "Gobo Eiffel XSLT test suite"
  5. copyright: "Copyright (c) 2004-2018, Colin Adams and others"
  6. license: "MIT License"
  7. date: "$Date$"
  8. revision: "$Revision$"
  9. class XM_XSLT_TEST_STYLESHEET_BUILDER
  10. inherit
  11. TS_TEST_CASE
  12. KL_IMPORTED_STRING_ROUTINES
  13. XM_XPATH_SHARED_CONFORMANCE
  14. XM_XPATH_SHARED_NAME_POOL
  15. XM_XSLT_STYLESHEET_COMPILER_HANDLER
  16. KL_SHARED_FILE_SYSTEM
  17. export {NONE} all end
  18. UT_SHARED_FILE_URI_ROUTINES
  19. export {NONE} all end
  20. create
  21. make_default
  22. feature -- Test
  23. test_simple
  24. -- Simple tree.
  25. local
  26. l_transformer_factory: XM_XSLT_TRANSFORMER_FACTORY
  27. l_stylesheet_compiler: XM_XSLT_STYLESHEET_COMPILER
  28. l_configuration: XM_XSLT_CONFIGURATION
  29. l_error_listener: XM_XSLT_TESTING_ERROR_LISTENER
  30. l_transformer: detachable XM_XSLT_TRANSFORMER
  31. l_last_loaded_module: detachable XM_XPATH_TREE_DOCUMENT
  32. l_uri_source: XM_XSLT_URI_SOURCE
  33. l_template_1: detachable XM_XSLT_TEMPLATE
  34. l_template_2: detachable XM_XSLT_TEMPLATE
  35. l_template_3: detachable XM_XSLT_TEMPLATE
  36. l_template_4: detachable XM_XSLT_TEMPLATE
  37. l_template_5: detachable XM_XSLT_TEMPLATE
  38. l_template_6: detachable XM_XSLT_TEMPLATE
  39. do
  40. conformance.set_basic_xslt_processor
  41. create l_configuration.make_with_defaults
  42. l_configuration.set_string_mode_ascii -- make_with_defaults sets to mixed
  43. create l_error_listener.make (l_configuration.recovery_policy)
  44. l_configuration.set_error_listener (l_error_listener)
  45. create l_transformer_factory.make (l_configuration)
  46. create l_stylesheet_compiler.make (l_configuration)
  47. create l_uri_source.make (books_xsl_uri.full_reference)
  48. l_stylesheet_compiler.prepare (l_uri_source, dummy_uri)
  49. assert ("Stylesheet compiled without errors", not l_stylesheet_compiler.load_stylesheet_module_failed)
  50. l_last_loaded_module := l_stylesheet_compiler.last_loaded_module
  51. assert ("Stylesheet not void", l_last_loaded_module /= Void)
  52. check asserted_above: l_last_loaded_module /= Void then end
  53. if not attached {XM_XSLT_STYLESHEET} l_last_loaded_module.document_element as l_document_element then
  54. assert ("document_element_not_void", False)
  55. elseif l_document_element.is_stylesheet_in_error then
  56. assert ("Stylesheet compiled without errors", False)
  57. elseif l_stylesheet_compiler.load_stylesheet_module_failed then
  58. assert ("Stylesheet compiled without errors", False)
  59. elseif not STRING_.same_string (l_document_element.node_name, "xsl:transform") then
  60. assert ("xsl:transform", False)
  61. elseif not attached {XM_XSLT_KEY} l_document_element.first_child as l_key_1 then
  62. assert ("xsl:key 1", False)
  63. elseif not attached {XM_XSLT_KEY} l_key_1.next_sibling as l_key_2 then
  64. assert ("xsl:key 2", False)
  65. elseif not attached {XM_XSLT_DECIMAL_FORMAT} l_key_2.next_sibling as l_decimal_format_1 then
  66. assert ("xsl:decimal-format", False)
  67. elseif not attached {XM_XSLT_VARIABLE} l_decimal_format_1.next_sibling as l_variable_1 then
  68. assert ("xsl:variable 1", False)
  69. elseif not attached {XM_XSLT_VARIABLE} l_variable_1.next_sibling as l_variable_2 then
  70. assert ("xsl:variable 2", False)
  71. elseif not attached {XM_XSLT_PARAM} l_variable_2.next_sibling as l_param_1 then
  72. assert ("xsl:param", False)
  73. elseif attached {XM_XSLT_TEMPLATE} l_param_1.next_sibling as l_template then
  74. l_template_1 := l_template
  75. end
  76. -- First template.
  77. if l_template_1 = Void then
  78. assert ("xsl:template", False)
  79. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_template_1.first_child as l_literal_result_1 then
  80. assert ("l_literal_result_1_not_void", False)
  81. elseif not STRING_.same_string (l_literal_result_1.node_name, "html") then
  82. assert ("html", False)
  83. elseif not attached {XM_XSLT_COMMENT} l_literal_result_1.first_child as l_comment_1 then
  84. assert ("xsl:comment", False)
  85. elseif not attached {XM_XSLT_CALL_TEMPLATE} l_comment_1.next_sibling as l_call_template_1 then
  86. assert ("xsl:call-template", False)
  87. elseif not attached {XM_XSLT_WITH_PARAM} l_call_template_1.first_child as l_with_param_1 then
  88. assert ("xsl:with-param", False)
  89. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_call_template_1.next_sibling as l_literal_result_2 then
  90. assert ("l_literal_result_2_not_void", False)
  91. elseif not STRING_.same_string (l_literal_result_2.node_name, "body") then
  92. assert ("body", False)
  93. elseif not attached {XM_XSLT_APPLY_TEMPLATES} l_literal_result_2.first_child as l_apply_templates_1 then
  94. assert ("xsl:apply-templates", False)
  95. elseif attached {XM_XSLT_TEMPLATE} l_template_1.next_sibling as l_template then
  96. l_template_2 := l_template
  97. end
  98. -- Second template.
  99. if l_template_2 = Void then
  100. assert ("xsl:template 2", False)
  101. elseif not attached {XM_XSLT_PARAM} l_template_2.first_child as l_param_2 then
  102. assert ("xsl:param 2", False)
  103. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_param_2.next_sibling as l_literal_result_3 then
  104. assert ("l_literal_result_3_not_void", False)
  105. elseif not STRING_.same_string (l_literal_result_3.node_name, "head") then
  106. assert ("head", False)
  107. elseif not attached {XM_XSLT_CHOOSE} l_literal_result_3.first_child as l_choose_1 then
  108. assert ("xsl:choose", False)
  109. elseif not attached {XM_XSLT_WHEN} l_choose_1.first_child as l_when_1 then
  110. assert ("xsl:when", False)
  111. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_when_1.first_child as l_literal_result_4 then
  112. assert ("l_literal_result_4_not_void", False)
  113. elseif not STRING_.same_string (l_literal_result_4.node_name, "title") then
  114. assert ("title", False)
  115. elseif not attached {XM_XSLT_VALUE_OF} l_literal_result_4.first_child as l_value_of_1 then
  116. assert ("xsl:value-of", False)
  117. elseif not attached {XM_XSLT_OTHERWISE} l_when_1.next_sibling as l_otherwise_1 then
  118. assert ("xsl:otherwise", False)
  119. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_otherwise_1.first_child as l_literal_result_5 then
  120. assert ("l_literal_result_5_not_void", False)
  121. elseif not STRING_.same_string (l_literal_result_5.node_name, "title") then
  122. assert ("title 2", False)
  123. elseif not attached {XM_XPATH_TEXT} l_literal_result_5.first_child as l_text_1 then
  124. assert ("l_text_1_not_void", False)
  125. elseif not STRING_.same_string (l_text_1.string_value, "Untitled") then
  126. assert ("xsl:text", False)
  127. elseif attached {XM_XSLT_TEMPLATE} l_template_2.next_sibling as l_template then
  128. l_template_3 := l_template
  129. end
  130. -- Third template.
  131. if l_template_3 = Void then
  132. assert ("xsl:template 3", False)
  133. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_template_3.first_child as l_literal_result_6 then
  134. assert ("l_literal_result_6_not_void", False)
  135. elseif not STRING_.same_string (l_literal_result_6.node_name, "h2") then
  136. assert ("h2", False)
  137. elseif not attached {XM_XPATH_TEXT} l_literal_result_6.first_child as l_text_2 then
  138. assert ("l_text_2_not_void", False)
  139. elseif not STRING_.same_string (l_text_2.string_value, "This week's top author is ") then
  140. assert ("xsl:text 2", False)
  141. elseif not attached {XM_XSLT_VALUE_OF} l_text_2.next_sibling as l_value_of_2 then
  142. assert ("xsl:value-of 2", False)
  143. elseif not attached {XM_XSLT_VARIABLE} l_literal_result_6.next_sibling as l_variable_3 then
  144. assert ("xsl:variable 3", False)
  145. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_variable_3.next_sibling as l_literal_result_7 then
  146. assert ("l_literal_result_7_not_void", False)
  147. elseif not STRING_.same_string (l_literal_result_7.node_name, "p") then
  148. assert ("p", False)
  149. elseif not attached {XM_XPATH_TEXT} l_literal_result_7.first_child as l_text_3 then
  150. assert ("l_text_3_not_void", False)
  151. elseif not STRING_.same_string (l_text_3.string_value, "We stock the following ") then
  152. assert ("xsl:text 3", False)
  153. elseif not attached {XM_XSLT_VALUE_OF} l_text_3.next_sibling as l_value_of_3 then
  154. assert ("xsl:value-of 3", False)
  155. elseif not attached {XM_XPATH_TEXT} l_value_of_3.next_sibling as l_text_4 then
  156. assert ("l_text_4_not_void", False)
  157. elseif not STRING_.same_string (l_text_4.string_value, " books by this author:") then
  158. assert ("xsl:text 4", False)
  159. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_7.next_sibling as l_literal_result_8 then
  160. assert ("l_literal_result_8_not_void", False)
  161. elseif not STRING_.same_string (l_literal_result_8.node_name, "ul") then
  162. assert ("ul", False)
  163. elseif not attached {XM_XSLT_FOR_EACH} l_literal_result_8.first_child as l_for_each_1 then
  164. assert ("xsl:for-each", False)
  165. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_for_each_1.first_child as l_second_literal_result_1 then
  166. assert ("l_second_literal_result_1_not_void", False)
  167. elseif not STRING_.same_string (l_second_literal_result_1.node_name, "li") then
  168. assert ("li", False)
  169. elseif not attached {XM_XSLT_VALUE_OF} l_second_literal_result_1.first_child as l_value_of_4 then
  170. assert ("xsl:value-of 4", False)
  171. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_8.next_sibling as l_literal_result_9 then
  172. assert ("l_literal_result_9_not_void", False)
  173. elseif not STRING_.same_string (l_literal_result_9.node_name, "p") then
  174. assert ("p 2", False)
  175. elseif not attached {XM_XPATH_TEXT} l_literal_result_9.first_child as l_text_5 then
  176. assert ("l_text_5_not_void", False)
  177. elseif not STRING_.same_string (l_text_5.string_value, "This author has written books in the following categories:") then
  178. assert ("xsl:text 5", False)
  179. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_9.next_sibling as l_literal_result_10 then
  180. assert ("l_literal_result_10_not_void", False)
  181. elseif not STRING_.same_string (l_literal_result_10.node_name, "ul") then
  182. assert ("ul 2", False)
  183. elseif not attached {XM_XSLT_FOR_EACH} l_literal_result_10.first_child as l_for_each_2 then
  184. assert ("xsl:for-each 2", False)
  185. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_for_each_2.first_child as l_second_literal_result_2 then
  186. assert ("l_second_literal_result_2_not_void", False)
  187. elseif not STRING_.same_string (l_second_literal_result_2.node_name, "li") then
  188. assert ("li 2", False)
  189. elseif not attached {XM_XSLT_VALUE_OF} l_second_literal_result_2.first_child as l_value_of_5 then
  190. assert ("xsl:value-of 5", False)
  191. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_10.next_sibling as l_literal_result_11 then
  192. assert ("l_literal_result_11_not_void", False)
  193. elseif not STRING_.same_string (l_literal_result_11.node_name, "p") then
  194. assert ("p 3", False)
  195. elseif not attached {XM_XPATH_TEXT} l_literal_result_11.first_child as l_text_6 then
  196. assert ("l_text_6_not_void", False)
  197. elseif not STRING_.same_string (l_text_6.string_value, "The average price of these books is: %N ") then
  198. assert ("xsl:text 6", False)
  199. elseif not attached {XM_XSLT_VALUE_OF} l_second_literal_result_2.first_child as l_value_of_6 then
  200. assert ("xsl:value-of 6", False)
  201. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_11.next_sibling as l_literal_result_12 then
  202. assert ("l_literal_result_12_not_void", False)
  203. elseif not STRING_.same_string (l_literal_result_12.node_name, "h2") then
  204. assert ("h2 2", False)
  205. elseif not attached {XM_XPATH_TEXT} l_literal_result_12.first_child as l_text_7 then
  206. assert ("l_text_7_not_void", False)
  207. elseif not STRING_.same_string (l_text_7.string_value, "A complete list of books, grouped by author") then
  208. assert ("xsl:text 7", False)
  209. elseif not attached {XM_XSLT_APPLY_TEMPLATES} l_literal_result_12.next_sibling as l_apply_templates_2 then
  210. assert ("xsl:apply-templates 2", False)
  211. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_apply_templates_2.next_sibling as l_literal_result_13 then
  212. assert ("l_literal_result_13_not_void", False)
  213. elseif not STRING_.same_string (l_literal_result_13.node_name, "h2") then
  214. assert ("h2 3", False)
  215. elseif not attached {XM_XPATH_TEXT} l_literal_result_13.first_child as l_text_8 then
  216. assert ("l_text_8_not_void", False)
  217. elseif not STRING_.same_string (l_text_8.string_value, "A complete list of books, grouped by category") then
  218. assert ("xsl:text 8", False)
  219. elseif not attached {XM_XSLT_APPLY_TEMPLATES} l_literal_result_13.next_sibling as l_apply_templates_3 then
  220. assert ("xsl:apply-templates 3", False)
  221. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_apply_templates_3.next_sibling as l_literal_result_14 then
  222. assert ("l_literal_result_14_not_void", False)
  223. elseif not STRING_.same_string (l_literal_result_14.node_name, "h2") then
  224. assert ("h2 4", False)
  225. elseif not attached {XM_XPATH_TEXT} l_literal_result_14.first_child as l_text_9 then
  226. assert ("l_text_9_not_void", False)
  227. elseif not STRING_.same_string (l_text_9.string_value, "List of categories") then
  228. assert ("xsl:text 9", False)
  229. elseif not STRING_.same_string (l_text_9.string_value, "List of categories") then
  230. assert ("xsl:text 9", False)
  231. elseif not attached {XM_XSLT_APPLY_TEMPLATES} l_literal_result_14.next_sibling as l_apply_templates_4 then
  232. assert ("xsl:apply-templates 4", False)
  233. elseif not attached {XM_XSLT_SORT} l_apply_templates_4.first_child as l_sort_1 then
  234. assert ("sort", False)
  235. elseif not attached {XM_XSLT_SORT} l_sort_1.next_sibling as l_sort_2 then
  236. assert ("sort 2", False)
  237. elseif attached {XM_XSLT_TEMPLATE} l_template_3.next_sibling as l_template then
  238. l_template_4 := l_template
  239. end
  240. -- Fourth template.
  241. if l_template_4 = Void then
  242. assert ("xsl:template 4", False)
  243. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_template_4.first_child as l_literal_result_15 then
  244. assert ("l_literal_result_15_not_void", False)
  245. elseif not STRING_.same_string (l_literal_result_15.node_name, "div") then
  246. assert ("div", False)
  247. elseif not attached {XM_XSLT_FOR_EACH_GROUP} l_literal_result_15.first_child as l_for_each_group_1 then
  248. assert ("xsl:for-each-group", False)
  249. elseif not attached {XM_XSLT_SORT} l_for_each_group_1.first_child as l_sort_3 then
  250. assert ("sort 3", False)
  251. elseif not attached {XM_XSLT_SORT} l_sort_3.next_sibling as l_sort_4 then
  252. assert ("sort 4", False)
  253. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_sort_4.next_sibling as l_literal_result_16 then
  254. assert ("l_literal_result_16_not_void", False)
  255. elseif not STRING_.same_string (l_literal_result_16.node_name, "h3") then
  256. assert ("h3", False)
  257. elseif not attached {XM_XPATH_TEXT} l_literal_result_16.first_child as l_text_10 then
  258. assert ("l_text_10_not_void", False)
  259. elseif not STRING_.same_string (l_text_10.string_value, "AUTHOR: ") then
  260. assert ("xsl:text 10", False)
  261. elseif not attached {XM_XSLT_VALUE_OF} l_text_10.next_sibling as l_value_of_7 then
  262. assert ("xsl:value-of 7", False)
  263. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_16.next_sibling as l_literal_result_17 then
  264. assert ("l_literal_result_17_not_void", False)
  265. elseif not STRING_.same_string (l_literal_result_17.node_name, "table") then
  266. assert ("table", False)
  267. elseif not attached {XM_XSLT_FOR_EACH} l_literal_result_17.first_child as l_for_each_3 then
  268. assert ("xsl:for-each 3", False)
  269. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_for_each_3.first_child as l_second_literal_result_3 then
  270. assert ("l_second_literal_result_3_not_void", False)
  271. elseif not STRING_.same_string (l_second_literal_result_3.node_name, "tr") then
  272. assert ("tr", False)
  273. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_second_literal_result_3.first_child as l_second_literal_result_4 then
  274. assert ("l_second_literal_result_4_not_void", False)
  275. elseif not STRING_.same_string (l_second_literal_result_4.node_name, "td") then
  276. assert ("td", False)
  277. elseif not attached {XM_XSLT_NUMBER} l_second_literal_result_4.first_child as l_number_1 then
  278. assert ("xsl:number", False)
  279. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_second_literal_result_4.next_sibling as l_second_literal_result_5 then
  280. assert ("l_second_literal_result_5_not_void", False)
  281. elseif not STRING_.same_string (l_second_literal_result_5.node_name, "td") then
  282. assert ("td 2", False)
  283. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_17.next_sibling as l_literal_result_18 then
  284. assert ("l_literal_result_18_not_void", False)
  285. elseif not STRING_.same_string (l_literal_result_18.node_name, "hr") then
  286. assert ("hr", False)
  287. elseif attached {XM_XSLT_TEMPLATE} l_template_4.next_sibling as l_template then
  288. l_template_5 := l_template
  289. end
  290. -- Fifth template.
  291. if l_template_5 = Void then
  292. assert ("xsl:template 5", False)
  293. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_template_5.first_child as l_literal_result_19 then
  294. assert ("l_literal_result_19_not_void", False)
  295. elseif not STRING_.same_string (l_literal_result_19.node_name, "div") then
  296. assert ("div 2", False)
  297. elseif not attached {XM_XSLT_FOR_EACH_GROUP} l_literal_result_19.first_child as l_for_each_group_2 then
  298. assert ("xsl:for-each-group 2", False)
  299. elseif not attached {XM_XSLT_SORT} l_for_each_group_2.first_child as l_sort_5 then
  300. assert ("sort 5", False)
  301. elseif not attached {XM_XSLT_SORT} l_sort_5.next_sibling as l_sort_6 then
  302. assert ("sort 6", False)
  303. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_sort_6.next_sibling as l_literal_result_20 then
  304. assert ("l_literal_result_20_not_void", False)
  305. elseif not STRING_.same_string (l_literal_result_20.node_name, "h3") then
  306. assert ("h3 2", False)
  307. elseif not attached {XM_XPATH_TEXT} l_literal_result_20.first_child as l_text_11 then
  308. assert ("l_text_11_not_void", False)
  309. elseif not STRING_.same_string (l_text_11.string_value, "CATEGORY: ") then
  310. assert ("xsl:text 11", False)
  311. elseif not attached {XM_XSLT_VALUE_OF} l_text_11.next_sibling as l_value_of_8 then
  312. assert ("xsl:value-of 8", False)
  313. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_20.next_sibling as l_literal_result_21 then
  314. assert ("l_literal_result_21_not_void", False)
  315. elseif not STRING_.same_string (l_literal_result_21.node_name, "ol") then
  316. assert ("ol", False)
  317. elseif not attached {XM_XSLT_FOR_EACH} l_literal_result_21.first_child as l_for_each_4 then
  318. assert ("xsl:for-each 4", False)
  319. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_for_each_4.first_child as l_second_literal_result_6 then
  320. assert ("l_second_literal_result_6_not_void", False)
  321. elseif not STRING_.same_string (l_second_literal_result_6.node_name, "li") then
  322. assert ("li 3", False)
  323. elseif not attached {XM_XPATH_TEXT} l_second_literal_result_6.first_child as l_text_12 then
  324. assert ("l_text_12_not_void", False)
  325. elseif not STRING_.same_string (l_text_12.string_value, "AUTHOR: ") then
  326. assert ("xsl:text 12", False)
  327. elseif not attached {XM_XSLT_VALUE_OF} l_text_12.next_sibling as l_value_of_9 then
  328. assert ("xsl:value-of 9", False)
  329. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_value_of_9.next_sibling as l_second_literal_result_7 then
  330. assert ("l_second_literal_result_7_not_void", False)
  331. elseif not STRING_.same_string (l_second_literal_result_7.node_name, "br") then
  332. assert ("br", False)
  333. elseif not attached {XM_XPATH_TEXT} l_second_literal_result_7.next_sibling as l_text_13 then
  334. assert ("l_text_13_not_void", False)
  335. elseif not STRING_.same_string (l_text_13.string_value, "%N TITLE: ") then
  336. assert ("xsl:text 13", False)
  337. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_21.next_sibling as l_literal_result_22 then
  338. assert ("l_literal_result_22_not_void", False)
  339. elseif not STRING_.same_string (l_literal_result_22.node_name, "hr") then
  340. assert ("hr 2", False)
  341. elseif attached {XM_XSLT_TEMPLATE} l_template_5.next_sibling as l_template then
  342. l_template_6 := l_template
  343. end
  344. -- Sixth template.
  345. if l_template_6 = Void then
  346. assert ("xsl:template 6", False)
  347. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_template_6.first_child as l_literal_result_23 then
  348. assert ("l_literal_result_23_not_void", False)
  349. elseif not STRING_.same_string (l_literal_result_23.node_name, "h4") then
  350. assert ("h4", False)
  351. elseif not attached {XM_XPATH_TEXT} l_literal_result_23.first_child as l_text_14 then
  352. assert ("l_text_14_not_void", False)
  353. elseif not STRING_.same_string (l_text_14.string_value, "CATEGORY ") then
  354. assert ("xsl:text 14", False)
  355. elseif not attached {XM_XSLT_NUMBER} l_text_14.next_sibling as l_number_2 then
  356. assert ("xsl:number 2", False)
  357. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_23.next_sibling as l_literal_result_24 then
  358. assert ("l_literal_result_24_not_void", False)
  359. elseif not STRING_.same_string (l_literal_result_24.node_name, "table") then
  360. assert ("table 2", False)
  361. elseif not attached {XM_XSLT_FOR_EACH} l_literal_result_24.first_child as l_for_each_5 then
  362. assert ("xsl:for-each 5", False)
  363. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_for_each_5.first_child as l_second_literal_result_8 then
  364. assert ("l_second_literal_result_8_not_void", False)
  365. elseif not STRING_.same_string (l_second_literal_result_8.node_name, "tr") then
  366. assert ("tr 2", False)
  367. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_second_literal_result_8.first_child as l_second_literal_result_9 then
  368. assert ("l_second_literal_result_9_not_void", False)
  369. elseif not STRING_.same_string (l_second_literal_result_9.node_name, "td") then
  370. assert ("td 3", False)
  371. elseif not attached {XM_XSLT_VALUE_OF} l_second_literal_result_9.first_child as l_value_of_10 then
  372. assert ("xsl:value-of 10", False)
  373. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_second_literal_result_9.next_sibling as l_second_literal_result_10 then
  374. assert ("l_second_literal_result_10_not_void", False)
  375. elseif not STRING_.same_string (l_second_literal_result_10.node_name, "td") then
  376. assert ("td 4", False)
  377. elseif not attached {XM_XSLT_VALUE_OF} l_second_literal_result_10.first_child as l_value_of_11 then
  378. assert ("xsl:value-of 11", False)
  379. elseif not attached {XM_XSLT_LITERAL_RESULT_ELEMENT} l_literal_result_24.next_sibling as l_literal_result_25 then
  380. assert ("l_literal_result_25_not_void", False)
  381. elseif not STRING_.same_string (l_literal_result_25.node_name, "hr") then
  382. assert ("hr 3", False)
  383. end
  384. l_transformer := l_stylesheet_compiler.new_transformer (l_transformer_factory, Void)
  385. assert ("transformer", l_transformer /= Void)
  386. end
  387. feature {NONE} -- Implementation
  388. data_dirname: STRING
  389. -- Name of directory containing data files
  390. once
  391. Result := file_system.nested_pathname ("${GOBO}", <<"library", "xpath", "test", "unit", "data">>)
  392. Result := Execution_environment.interpreted_string (Result)
  393. ensure
  394. data_dirname_not_void: Result /= Void
  395. data_dirname_not_empty: not Result.is_empty
  396. end
  397. dummy_uri: UT_URI
  398. -- Dummy URI
  399. once
  400. create Result.make ("dummy:")
  401. ensure
  402. dummy_uri_is_absolute: Result /= Void and then Result.is_absolute
  403. end
  404. books_xsl_uri: UT_URI
  405. -- URI of file 'books.xsl'
  406. local
  407. l_path: STRING
  408. once
  409. l_path := file_system.pathname (data_dirname, "books.xsl")
  410. Result := File_uri.filename_to_uri (l_path)
  411. ensure
  412. books_xsl_uri_not_void: Result /= Void
  413. end
  414. end