redsnow 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (583) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +67 -0
  3. data/Rakefile +1 -1
  4. data/doc/RedSnow.html +321 -0
  5. data/doc/RedSnow/Action.html +702 -0
  6. data/doc/RedSnow/Binding.html +135 -0
  7. data/doc/RedSnow/Blueprint.html +657 -0
  8. data/doc/RedSnow/BlueprintNode.html +139 -0
  9. data/doc/RedSnow/ErrorCodes.html +165 -0
  10. data/doc/RedSnow/Headers.html +456 -0
  11. data/doc/RedSnow/KeyValueCollection.html +343 -0
  12. data/doc/RedSnow/Location.html +391 -0
  13. data/doc/RedSnow/Metadata.html +343 -0
  14. data/doc/RedSnow/NamedBlueprintNode.html +444 -0
  15. data/doc/RedSnow/Object.html +295 -0
  16. data/doc/RedSnow/Parameter.html +881 -0
  17. data/doc/RedSnow/Parameters.html +349 -0
  18. data/doc/RedSnow/ParseResult.html +570 -0
  19. data/doc/RedSnow/Payload.html +775 -0
  20. data/doc/RedSnow/Resource.html +790 -0
  21. data/doc/RedSnow/ResourceGroup.html +521 -0
  22. data/doc/RedSnow/TransactionExample.html +700 -0
  23. data/doc/RedSnow/WarningCodes.html +210 -0
  24. data/doc/_index.html +342 -0
  25. data/doc/class_list.html +54 -0
  26. data/doc/css/common.css +1 -0
  27. data/doc/css/full_list.css +57 -0
  28. data/doc/css/style.css +339 -0
  29. data/doc/file.README.html +136 -0
  30. data/doc/file_list.html +56 -0
  31. data/doc/frames.html +26 -0
  32. data/doc/index.html +136 -0
  33. data/doc/js/app.js +219 -0
  34. data/doc/js/full_list.js +178 -0
  35. data/doc/js/jquery.js +4 -0
  36. data/doc/method_list.html +347 -0
  37. data/doc/top-level-namespace.html +112 -0
  38. data/ext/snowcrash/Gemfile +8 -0
  39. data/ext/snowcrash/Gemfile.lock +40 -0
  40. data/ext/snowcrash/LICENSE +22 -0
  41. data/ext/snowcrash/README.md +118 -0
  42. data/ext/snowcrash/bin/snowcrash +0 -0
  43. data/ext/snowcrash/bin/test-libsnowcrash +0 -0
  44. data/ext/snowcrash/build/Makefile +375 -0
  45. data/ext/snowcrash/build/gyp-mac-tool +511 -0
  46. data/ext/snowcrash/build/libmarkdownparser.target.mk +137 -0
  47. data/ext/snowcrash/build/libsnowcrash.target.mk +165 -0
  48. data/ext/snowcrash/build/libsundown.target.mk +143 -0
  49. data/ext/snowcrash/build/out/Release/libmarkdownparser.a +0 -0
  50. data/ext/snowcrash/build/out/Release/libsnowcrash.dylib +0 -0
  51. data/ext/snowcrash/build/out/Release/libsundown.a +0 -0
  52. data/ext/snowcrash/build/out/Release/linker.lock +0 -0
  53. data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/ByteBuffer.o +0 -0
  54. data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/MarkdownNode.o +0 -0
  55. data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/MarkdownParser.o +0 -0
  56. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CBlueprint.o +0 -0
  57. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CBlueprintSourcemap.o +0 -0
  58. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CSourceAnnotation.o +0 -0
  59. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/HTTP.o +0 -0
  60. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/MarkdownBlock.o +0 -0
  61. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/MarkdownParser.o +0 -0
  62. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Parser.o +0 -0
  63. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/ParserCore.o +0 -0
  64. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Section.o +0 -0
  65. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Serialize.o +0 -0
  66. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/SerializeJSON.o +0 -0
  67. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/SerializeYAML.o +0 -0
  68. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Signature.o +0 -0
  69. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/UriTemplateParser.o +0 -0
  70. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/csnowcrash.o +0 -0
  71. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/posix/RegexMatch.o +0 -0
  72. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/snowcrash.o +0 -0
  73. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
  74. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
  75. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/html.o +0 -0
  76. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/html_smartypants.o +0 -0
  77. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/autolink.o +0 -0
  78. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/buffer.o +0 -0
  79. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/markdown.o +0 -0
  80. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/src_map.o +0 -0
  81. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
  82. data/ext/snowcrash/build/out/Release/obj.target/snowcrash/src/snowcrash/snowcrash.o +0 -0
  83. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/html/houdini_href_e.o +0 -0
  84. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/html/houdini_html_e.o +0 -0
  85. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/html/html.o +0 -0
  86. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/html/html_smartypants.o +0 -0
  87. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/autolink.o +0 -0
  88. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/buffer.o +0 -0
  89. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/markdown.o +0 -0
  90. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/src_map.o +0 -0
  91. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/stack.o +0 -0
  92. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ActionParser.o +0 -0
  93. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-AssetParser.o +0 -0
  94. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Blueprint.o +0 -0
  95. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-BlueprintParser.o +0 -0
  96. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-HeaderParser.o +0 -0
  97. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-HeadersParser.o +0 -0
  98. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Indentation.o +0 -0
  99. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ListUtility.o +0 -0
  100. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-MarkdownBlock.o +0 -0
  101. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-MarkdownParser.o +0 -0
  102. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ParameterDefinitonParser.o +0 -0
  103. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ParameterParser.o +0 -0
  104. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ParametersParser.o +0 -0
  105. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Parser.o +0 -0
  106. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-PayloadParser.o +0 -0
  107. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-RegexMatch.o +0 -0
  108. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ResouceGroupParser.o +0 -0
  109. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ResourceGroupParser.o +0 -0
  110. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ResourceParser.o +0 -0
  111. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-SectionParser.o +0 -0
  112. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-SymbolIdentifier.o +0 -0
  113. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-SymbolTable.o +0 -0
  114. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-UriTemplateParser.o +0 -0
  115. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ValuesParser.o +0 -0
  116. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Warnings.o +0 -0
  117. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-csnowcrash.o +0 -0
  118. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-snowcrash.o +0 -0
  119. data/ext/snowcrash/build/out/Release/snowcrash +0 -0
  120. data/ext/snowcrash/build/out/Release/test-libsnowcrash +0 -0
  121. data/ext/snowcrash/build/perf-libsnowcrash.target.mk +151 -0
  122. data/ext/snowcrash/build/snowcrash.Makefile +6 -0
  123. data/ext/snowcrash/build/snowcrash.target.mk +149 -0
  124. data/ext/snowcrash/build/sundown.target.mk +143 -0
  125. data/ext/snowcrash/build/test-libsnowcrash.target.mk +170 -0
  126. data/ext/snowcrash/ext/cmdline/LICENSE +30 -0
  127. data/ext/snowcrash/ext/cmdline/README.rst +191 -0
  128. data/ext/snowcrash/ext/cmdline/cmdline.h +817 -0
  129. data/ext/snowcrash/ext/cmdline/test.cpp +50 -0
  130. data/ext/snowcrash/ext/cmdline/test2.cpp +61 -0
  131. data/ext/snowcrash/ext/markdown-parser/LICENSE +22 -0
  132. data/ext/snowcrash/ext/markdown-parser/README.md +11 -0
  133. data/ext/snowcrash/ext/markdown-parser/ext/sundown/README.markdown +141 -0
  134. data/ext/snowcrash/ext/markdown-parser/markdownparser.xcodeproj/project.pbxproj +448 -0
  135. data/ext/snowcrash/ext/markdown-parser/msvc/test-markdown/test-markdown.vcproj +195 -0
  136. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/LICENSE_1_0.txt +23 -0
  137. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/README.md +24 -0
  138. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/catch-logo-small.png +0 -0
  139. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/assertions.md +64 -0
  140. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/build-systems.md +36 -0
  141. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/command-line.md +155 -0
  142. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/contributing.md +19 -0
  143. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/logging.md +52 -0
  144. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/own-main.md +68 -0
  145. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/reference-index.md +14 -0
  146. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/test-cases-and-sections.md +60 -0
  147. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/test-fixtures.md +32 -0
  148. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/tutorial.md +228 -0
  149. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/whats-changed.md +24 -0
  150. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/why-catch.md +42 -0
  151. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/catch.hpp +202 -0
  152. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/catch_runner.hpp +224 -0
  153. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/catch_with_main.hpp +15 -0
  154. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/external/clara.h +868 -0
  155. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/external/tbc_text_format.h +153 -0
  156. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_approx.hpp +91 -0
  157. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_assertionresult.h +71 -0
  158. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_assertionresult.hpp +91 -0
  159. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_capture.hpp +179 -0
  160. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_clara.h +32 -0
  161. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_commandline.hpp +145 -0
  162. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_common.h +119 -0
  163. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_common.hpp +86 -0
  164. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_compiler_capabilities.h +123 -0
  165. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_config.hpp +178 -0
  166. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_console_colour.hpp +66 -0
  167. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_console_colour_impl.hpp +166 -0
  168. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_context.h +53 -0
  169. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_context_impl.hpp +112 -0
  170. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_debugger.h +49 -0
  171. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_debugger.hpp +100 -0
  172. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_default_main.hpp +38 -0
  173. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_evaluate.hpp +178 -0
  174. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_exception_translator_registry.hpp +75 -0
  175. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expression_decomposer.hpp +31 -0
  176. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expression_lhs.hpp +105 -0
  177. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expressionresult_builder.h +63 -0
  178. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expressionresult_builder.hpp +98 -0
  179. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_generators.hpp +190 -0
  180. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_generators_impl.hpp +86 -0
  181. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_impl.hpp +92 -0
  182. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_capture.h +46 -0
  183. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_config.h +54 -0
  184. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_exception.h +66 -0
  185. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_generators.h +32 -0
  186. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_registry_hub.h +44 -0
  187. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_reporter.h +265 -0
  188. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_runner.h +19 -0
  189. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_testcase.h +37 -0
  190. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_legacy_reporter_adapter.h +59 -0
  191. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_legacy_reporter_adapter.hpp +82 -0
  192. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_list.hpp +150 -0
  193. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_matchers.hpp +233 -0
  194. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_message.h +65 -0
  195. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_message.hpp +43 -0
  196. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_notimplemented_exception.h +35 -0
  197. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_notimplemented_exception.hpp +30 -0
  198. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_objc.hpp +203 -0
  199. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_objc_arc.hpp +51 -0
  200. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_option.hpp +75 -0
  201. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_platform.h +20 -0
  202. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_ptr.hpp +94 -0
  203. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_registry_hub.hpp +83 -0
  204. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_reporter_registrars.hpp +74 -0
  205. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_reporter_registry.hpp +45 -0
  206. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_result_type.h +66 -0
  207. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_runner_impl.hpp +319 -0
  208. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section.h +55 -0
  209. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section.hpp +40 -0
  210. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section_info.h +31 -0
  211. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section_info.hpp +113 -0
  212. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_sfinae.hpp +44 -0
  213. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_stream.h +33 -0
  214. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_stream.hpp +83 -0
  215. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_streambuf.h +23 -0
  216. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_tags.h +109 -0
  217. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_tags.hpp +137 -0
  218. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_info.h +84 -0
  219. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_info.hpp +166 -0
  220. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_registry_impl.hpp +146 -0
  221. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_tracker.hpp +148 -0
  222. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_registry.hpp +120 -0
  223. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_spec.h +65 -0
  224. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_spec.hpp +133 -0
  225. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_text.h +24 -0
  226. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_timer.h +35 -0
  227. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_timer.hpp +63 -0
  228. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_tostring.hpp +276 -0
  229. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_totals.hpp +67 -0
  230. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_version.h +37 -0
  231. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_version.hpp +19 -0
  232. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_xmlwriter.hpp +218 -0
  233. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_bases.hpp +203 -0
  234. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_console.hpp +411 -0
  235. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_junit.hpp +226 -0
  236. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_xml.hpp +151 -0
  237. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/CMake/CMakeLists.txt +38 -0
  238. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ApproxTests.cpp +112 -0
  239. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/BDDTests.cpp +68 -0
  240. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/console.std.approved.txt +778 -0
  241. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/console.sw.approved.txt +6995 -0
  242. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt +322 -0
  243. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt +562 -0
  244. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt +7251 -0
  245. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ClassTests.cpp +57 -0
  246. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ConditionTests.cpp +334 -0
  247. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ExceptionTests.cpp +153 -0
  248. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/GeneratorTests.cpp +42 -0
  249. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/MessageTests.cpp +121 -0
  250. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/MiscTests.cpp +341 -0
  251. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SectionTrackerTests.cpp +164 -0
  252. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_common.cpp +2 -0
  253. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp +2 -0
  254. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_debugger.cpp +2 -0
  255. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp +2 -0
  256. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp +1 -0
  257. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp +1 -0
  258. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp +1 -0
  259. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp +2 -0
  260. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp +1 -0
  261. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp +1 -0
  262. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp +1 -0
  263. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_message.cpp +2 -0
  264. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_option.cpp +2 -0
  265. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_ptr.cpp +2 -0
  266. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_stream.cpp +2 -0
  267. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp +2 -0
  268. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_tags.cpp +2 -0
  269. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp +2 -0
  270. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/TestMain.cpp +541 -0
  271. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/TrickyTests.cpp +396 -0
  272. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/VariadicMacrosTests.cpp +31 -0
  273. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/makefile +21 -0
  274. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2008/TestCatch/TestCatch.sln +20 -0
  275. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp +8 -0
  276. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj +394 -0
  277. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2010/TestCatch/TestCatch.sln +20 -0
  278. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj +148 -0
  279. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj +685 -0
  280. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  281. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest.xcodeproj/project.xcworkspace/xcshareddata/CatchSelfTest.xccheckout +41 -0
  282. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 +79 -0
  283. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest/catch_text.cpp +2 -0
  284. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj +258 -0
  285. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  286. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.xcworkspace/xcshareddata/CatchSelfTestSingle.xccheckout +41 -0
  287. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle/dummy.txt +0 -0
  288. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj +265 -0
  289. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  290. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/OCTest.xccheckout +41 -0
  291. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.h +25 -0
  292. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.mm +83 -0
  293. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/Main.mm +2 -0
  294. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/OCTest.1 +79 -0
  295. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/OCTest.mm +28 -0
  296. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/TestObj.h +28 -0
  297. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/TestObj.m +25 -0
  298. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest.xcodeproj/project.pbxproj +299 -0
  299. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  300. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/OCTest.mm +27 -0
  301. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/TestObj.h +25 -0
  302. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/TestObj.m +18 -0
  303. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/en.lproj/InfoPlist.strings +2 -0
  304. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/iOSTest-Info.plist +47 -0
  305. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/iOSTest-Prefix.pch +14 -0
  306. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/internal/iTchRunnerAppDelegate.h +114 -0
  307. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/internal/iTchRunnerMainView.h +189 -0
  308. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/internal/iTchRunnerReporter.h +115 -0
  309. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/itChRunnerMain.mm +27 -0
  310. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/readme +6 -0
  311. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/approvalTests.py +99 -0
  312. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/approve.py +29 -0
  313. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/generateSingleHeader.py +152 -0
  314. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/scriptCommon.py +4 -0
  315. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/single_include/catch.hpp +8544 -0
  316. data/ext/snowcrash/ext/markdown-parser/test/test-ByteBuffer.cc +83 -0
  317. data/ext/snowcrash/ext/markdown-parser/test/test-MarkdownParser.cc +628 -0
  318. data/ext/snowcrash/ext/markdown-parser/test/test-libmarkdownparser.cc +10 -0
  319. data/ext/snowcrash/features/fixtures/ast.json +154 -0
  320. data/ext/snowcrash/features/fixtures/ast.yaml +87 -0
  321. data/ext/snowcrash/features/fixtures/blueprint.apib +84 -0
  322. data/ext/snowcrash/features/fixtures/invalid_blueprint.apib +4 -0
  323. data/ext/snowcrash/features/parse.feature +23 -0
  324. data/ext/snowcrash/features/step_definitions/file_content_step.rb +8 -0
  325. data/ext/snowcrash/features/support/env.rb +7 -0
  326. data/ext/snowcrash/features/support/setup.rb +1 -0
  327. data/ext/snowcrash/features/validate.feature +37 -0
  328. data/ext/snowcrash/features/version.feature +10 -0
  329. data/ext/snowcrash/snowcrash.xcodeproj/project.pbxproj +798 -0
  330. data/ext/snowcrash/test/README.md +7 -0
  331. data/ext/snowcrash/test/performance/fixtures/fixture-1.apib +174 -0
  332. data/ext/snowcrash/test/performance/fixtures/fixture-2.apib +2455 -0
  333. data/ext/snowcrash/test/performance/fixtures/fixture-3.apib +10363 -0
  334. data/ext/snowcrash/test/performance/fixtures/fixture-4.apib +8390 -0
  335. data/ext/snowcrash/test/performance/perf-snowcrash.cc +162 -0
  336. data/ext/snowcrash/test/snowcrashtest.h +88 -0
  337. data/ext/snowcrash/test/test-ActionParser.cc +491 -0
  338. data/ext/snowcrash/test/test-AssetParser.cc +224 -0
  339. data/ext/snowcrash/test/test-Blueprint.cc +32 -0
  340. data/ext/snowcrash/test/test-BlueprintParser.cc +462 -0
  341. data/ext/snowcrash/test/test-HeadersParser.cc +256 -0
  342. data/ext/snowcrash/test/test-Indentation.cc +336 -0
  343. data/ext/snowcrash/test/test-ParameterParser.cc +499 -0
  344. data/ext/snowcrash/test/test-ParametersParser.cc +355 -0
  345. data/ext/snowcrash/test/test-PayloadParser.cc +657 -0
  346. data/ext/snowcrash/test/test-RegexMatch.cc +35 -0
  347. data/ext/snowcrash/test/test-ResourceGroupParser.cc +457 -0
  348. data/ext/snowcrash/test/test-ResourceParser.cc +947 -0
  349. data/ext/snowcrash/test/test-SectionParser.cc +81 -0
  350. data/ext/snowcrash/test/test-StringUtility.cc +65 -0
  351. data/ext/snowcrash/test/test-SymbolIdentifier.cc +53 -0
  352. data/ext/snowcrash/test/test-SymbolTable.cc +31 -0
  353. data/ext/snowcrash/test/test-UriTemplateParser.cc +333 -0
  354. data/ext/snowcrash/test/test-ValuesParser.cc +106 -0
  355. data/ext/snowcrash/test/test-Warnings.cc +94 -0
  356. data/ext/snowcrash/test/test-csnowcrash.cc +404 -0
  357. data/ext/snowcrash/test/test-snowcrash.cc +664 -0
  358. data/ext/snowcrash/test/vendor/Catch/LICENSE_1_0.txt +23 -0
  359. data/ext/snowcrash/test/vendor/Catch/README.md +24 -0
  360. data/ext/snowcrash/test/vendor/Catch/catch-logo-small.png +0 -0
  361. data/ext/snowcrash/test/vendor/Catch/docs/assertions.md +59 -0
  362. data/ext/snowcrash/test/vendor/Catch/docs/command-line.md +137 -0
  363. data/ext/snowcrash/test/vendor/Catch/docs/logging.md +52 -0
  364. data/ext/snowcrash/test/vendor/Catch/docs/own-main.md +68 -0
  365. data/ext/snowcrash/test/vendor/Catch/docs/reference-index.md +13 -0
  366. data/ext/snowcrash/test/vendor/Catch/docs/test-fixtures.md +32 -0
  367. data/ext/snowcrash/test/vendor/Catch/docs/tutorial.md +100 -0
  368. data/ext/snowcrash/test/vendor/Catch/docs/whats-changed.md +24 -0
  369. data/ext/snowcrash/test/vendor/Catch/docs/why-catch.md +42 -0
  370. data/ext/snowcrash/test/vendor/Catch/include/catch.hpp +182 -0
  371. data/ext/snowcrash/test/vendor/Catch/include/catch_runner.hpp +236 -0
  372. data/ext/snowcrash/test/vendor/Catch/include/catch_with_main.hpp +15 -0
  373. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_approx.hpp +91 -0
  374. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_assertionresult.h +65 -0
  375. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_assertionresult.hpp +91 -0
  376. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_capture.hpp +175 -0
  377. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_commandline.hpp +129 -0
  378. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_common.h +148 -0
  379. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_compiler_capabilities.h +85 -0
  380. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_config.hpp +182 -0
  381. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_console_colour.hpp +66 -0
  382. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_console_colour_impl.hpp +153 -0
  383. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_context.h +53 -0
  384. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_context_impl.hpp +112 -0
  385. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_debugger.hpp +116 -0
  386. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_default_main.hpp +38 -0
  387. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_evaluate.hpp +178 -0
  388. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_exception_translator_registry.hpp +74 -0
  389. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expression_decomposer.hpp +31 -0
  390. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expression_lhs.hpp +97 -0
  391. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expressionresult_builder.h +63 -0
  392. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expressionresult_builder.hpp +98 -0
  393. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_generators.hpp +190 -0
  394. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_generators_impl.hpp +86 -0
  395. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_impl.hpp +97 -0
  396. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_capture.h +46 -0
  397. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_config.h +32 -0
  398. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_exception.h +66 -0
  399. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_generators.h +32 -0
  400. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_registry_hub.h +45 -0
  401. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_reporter.h +339 -0
  402. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_runner.h +23 -0
  403. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_testcase.h +34 -0
  404. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_legacy_reporter_adapter.h +39 -0
  405. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_legacy_reporter_adapter.hpp +84 -0
  406. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_list.hpp +198 -0
  407. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_matchers.hpp +233 -0
  408. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_message.h +65 -0
  409. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_message.hpp +43 -0
  410. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_notimplemented_exception.h +35 -0
  411. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_notimplemented_exception.hpp +30 -0
  412. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_objc.hpp +202 -0
  413. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_objc_arc.hpp +51 -0
  414. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_option.hpp +67 -0
  415. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_ptr.hpp +94 -0
  416. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_registry_hub.hpp +83 -0
  417. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_reporter_registrars.hpp +75 -0
  418. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_reporter_registry.hpp +45 -0
  419. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_result_type.h +66 -0
  420. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_runner_impl.hpp +326 -0
  421. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_running_test.hpp +117 -0
  422. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_section.hpp +56 -0
  423. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_section_info.hpp +113 -0
  424. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_sfinae.hpp +44 -0
  425. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_stream.hpp +90 -0
  426. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_streambuf.h +21 -0
  427. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_tags.hpp +193 -0
  428. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_case_info.h +82 -0
  429. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_case_info.hpp +127 -0
  430. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_case_registry_impl.hpp +151 -0
  431. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_registry.hpp +120 -0
  432. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_spec.h +166 -0
  433. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_text.h +61 -0
  434. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_text.hpp +92 -0
  435. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_tostring.hpp +224 -0
  436. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_totals.hpp +67 -0
  437. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_version.h +37 -0
  438. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_version.hpp +19 -0
  439. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_xmlwriter.hpp +211 -0
  440. data/ext/snowcrash/test/vendor/Catch/include/internal/clara.h +553 -0
  441. data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_basic.hpp +353 -0
  442. data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_console.hpp +397 -0
  443. data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_junit.hpp +252 -0
  444. data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_xml.hpp +145 -0
  445. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ApproxTests.cpp +112 -0
  446. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/BDDTests.cpp +68 -0
  447. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/Baselines/approvedResults.txt +14686 -0
  448. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ClassTests.cpp +57 -0
  449. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/CmdLineTests.cpp +191 -0
  450. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ConditionTests.cpp +348 -0
  451. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ExceptionTests.cpp +143 -0
  452. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/GeneratorTests.cpp +42 -0
  453. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/MessageTests.cpp +102 -0
  454. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/MiscTests.cpp +343 -0
  455. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_common.cpp +2 -0
  456. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp +2 -0
  457. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_debugger.cpp +2 -0
  458. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp +2 -0
  459. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp +1 -0
  460. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp +1 -0
  461. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp +1 -0
  462. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp +2 -0
  463. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp +1 -0
  464. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp +1 -0
  465. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp +1 -0
  466. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_message.cpp +2 -0
  467. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_option.cpp +2 -0
  468. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_ptr.cpp +2 -0
  469. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_stream.cpp +2 -0
  470. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp +2 -0
  471. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_tags.cpp +2 -0
  472. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp +2 -0
  473. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/TestMain.cpp +561 -0
  474. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/TrickyTests.cpp +382 -0
  475. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/VariadicMacrosTests.cpp +31 -0
  476. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/catch_self_test.cpp +31 -0
  477. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/catch_self_test.hpp +177 -0
  478. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch.sln +20 -0
  479. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch/ReadMe.txt +33 -0
  480. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp +8 -0
  481. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj +398 -0
  482. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/UpgradeLog.XML +12 -0
  483. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css +207 -0
  484. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt +232 -0
  485. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Minus.gif +0 -0
  486. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Plus.gif +0 -0
  487. data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch.sln +20 -0
  488. data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch/ReadMe.txt +33 -0
  489. data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp +8 -0
  490. data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj +149 -0
  491. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/project.pbxproj +440 -0
  492. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  493. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/xcuserdata/phil.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +81 -0
  494. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/xcuserdata/phil.xcuserdatad/xcschemes/Test.xcscheme +154 -0
  495. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/xcuserdata/phil.xcuserdatad/xcschemes/xcschememanagement.plist +22 -0
  496. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTestSingle/CatchSelfTestSingle.1 +79 -0
  497. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTestSingle/CatchSelfTestSingle.xcodeproj/project.pbxproj +246 -0
  498. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/CatchOCTestCase.h +25 -0
  499. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/CatchOCTestCase.mm +45 -0
  500. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/Main.mm +1 -0
  501. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest.1 +79 -0
  502. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest.mm +28 -0
  503. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest.xcodeproj/project.pbxproj +259 -0
  504. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest_Prefix.pch +7 -0
  505. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/TestObj.h +25 -0
  506. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/TestObj.m +18 -0
  507. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj +667 -0
  508. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  509. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/xcuserdata/Phil.xcuserdatad/xcschemes/xcschememanagement.plist +22 -0
  510. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 +79 -0
  511. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/catch_text.cpp +2 -0
  512. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj +264 -0
  513. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  514. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTestSingle/dummy.txt +0 -0
  515. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest.xcodeproj/project.pbxproj +249 -0
  516. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  517. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/CatchOCTestCase.h +25 -0
  518. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/CatchOCTestCase.mm +82 -0
  519. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/Main.mm +2 -0
  520. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/OCTest.1 +79 -0
  521. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/OCTest.mm +28 -0
  522. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/TestObj.h +28 -0
  523. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/TestObj.m +25 -0
  524. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest.xcodeproj/project.pbxproj +299 -0
  525. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  526. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/OCTest.mm +27 -0
  527. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/TestObj.h +25 -0
  528. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/TestObj.m +18 -0
  529. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/en.lproj/InfoPlist.strings +2 -0
  530. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/iOSTest-Info.plist +47 -0
  531. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/iOSTest-Prefix.pch +14 -0
  532. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/internal/iTchRunnerAppDelegate.h +114 -0
  533. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/internal/iTchRunnerMainView.h +189 -0
  534. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/internal/iTchRunnerReporter.h +115 -0
  535. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/itChRunnerMain.mm +27 -0
  536. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/readme +6 -0
  537. data/ext/snowcrash/test/vendor/Catch/scripts/approvalTests.py +63 -0
  538. data/ext/snowcrash/test/vendor/Catch/scripts/approve.py +14 -0
  539. data/ext/snowcrash/test/vendor/Catch/scripts/generateSingleHeader.py +117 -0
  540. data/ext/snowcrash/test/vendor/Catch/scripts/scriptCommon.py +4 -0
  541. data/ext/snowcrash/test/vendor/Catch/single_include/catch.hpp +8046 -0
  542. data/ext/snowcrash/tools/README.md +27 -0
  543. data/ext/snowcrash/tools/gyp/LICENSE +27 -0
  544. data/ext/snowcrash/tools/gyp/gyptest.py +274 -0
  545. data/ext/snowcrash/tools/gyp/pylib/gyp/MSVSSettings_test.py +1483 -0
  546. data/ext/snowcrash/tools/gyp/pylib/gyp/__init__.pyc +0 -0
  547. data/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
  548. data/ext/snowcrash/tools/gyp/pylib/gyp/common_test.py +72 -0
  549. data/ext/snowcrash/tools/gyp/pylib/gyp/easy_xml_test.py +103 -0
  550. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
  551. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.pyc +0 -0
  552. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/msvs_test.py +37 -0
  553. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja_test.py +44 -0
  554. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.pyc +0 -0
  555. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode_test.py +23 -0
  556. data/ext/snowcrash/tools/gyp/pylib/gyp/input.pyc +0 -0
  557. data/ext/snowcrash/tools/gyp/pylib/gyp/input_test.py +90 -0
  558. data/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.pyc +0 -0
  559. data/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.pyc +0 -0
  560. data/ext/snowcrash/tools/gyp/tools/README +15 -0
  561. data/ext/snowcrash/tools/gyp/tools/Xcode/README +5 -0
  562. data/ext/snowcrash/tools/gyp/tools/emacs/README +12 -0
  563. data/ext/snowcrash/tools/gyp/tools/emacs/gyp-tests.el +63 -0
  564. data/ext/snowcrash/tools/gyp/tools/emacs/run-unit-tests.sh +7 -0
  565. data/ext/snowcrash/tools/gyp/tools/emacs/testdata/media.gyp +1105 -0
  566. data/ext/snowcrash/tools/gyp/tools/emacs/testdata/media.gyp.fontified +1107 -0
  567. data/lib/redsnow.rb +2 -2
  568. data/lib/redsnow/blueprint.rb +2 -1
  569. data/lib/redsnow/version.rb +1 -1
  570. data/pkg/redsnow-0.1.3.gem +0 -0
  571. data/pkg/redsnow-0.1.4.gem +0 -0
  572. data/pkg/redsnow-0.1.5.gem +0 -0
  573. data/pkg/redsnow-0.1.6.gem +0 -0
  574. data/pkg/redsnow-0.2.0.gem +0 -0
  575. data/pkg/redsnow-0.2.1.gem +0 -0
  576. data/pkg/redsnow-0.3.1.gem +0 -0
  577. data/redsnow.gemspec +2 -1
  578. data/test/redsnow_binding_test.rb +1 -1
  579. data/test/redsnow_options_test.rb +4 -4
  580. metadata +540 -6
  581. data/.gitignore +0 -34
  582. data/.gitmodules +0 -3
  583. data/.travis.yml +0 -21
@@ -0,0 +1,83 @@
1
+ //
2
+ // test-ByteBuffer.cc
3
+ // markdownparser
4
+ //
5
+ // Created by Zdenek Nemec on 4/22/14.
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "catch.hpp"
10
+ #include "MarkdownParser.h"
11
+
12
+ using namespace mdp;
13
+
14
+ TEST_CASE("Multi-byte characters Czech", "[bytebuffer][sourcemap]")
15
+ {
16
+ MarkdownParser parser;
17
+ MarkdownNode ast;
18
+
19
+ ByteBuffer src = "\x50\xC5\x99\xC3\xAD\xC5\xA1\x65\x72\x6E\xC4\x9B\x20\xC5\xBE\x6C\x75\xC5\xA5\x6F\x75\xC4\x8D\x6B\xC3\xBD\x20\x6B\xC5\xAF\xC5\x88\x20\xC3\xBA\x70\xC4\x9B\x6C\x20\xC4\x8F\xC3\xA1\x62\x65\x6C\x73\x6B\xC3\xA9\x20\xC3\xB3\x64\x79\n";
20
+
21
+ parser.parse(src, ast);
22
+
23
+ REQUIRE(ast.type == RootMarkdownNodeType);
24
+ REQUIRE(ast.text.empty());
25
+ REQUIRE(ast.data == 0);
26
+ REQUIRE(ast.children().size() == 1);
27
+ REQUIRE(ast.sourceMap.size() == 1);
28
+ REQUIRE(ast.sourceMap[0].location == 0);
29
+ REQUIRE(ast.sourceMap[0].length == 57);
30
+
31
+ CharactersRangeSet charMap = BytesRangeSetToCharactersRangeSet(ast.sourceMap, src);
32
+ REQUIRE(charMap.size() == 1);
33
+ REQUIRE(charMap[0].location == 0);
34
+ REQUIRE(charMap[0].length == 41);
35
+
36
+ ByteBuffer mappedBuffer = MapBytesRangeSet(ast.sourceMap, src);
37
+ REQUIRE(mappedBuffer == src);
38
+ }
39
+
40
+ TEST_CASE("Multi-byte characters in blockquote", "[bytebuffer][sourcemap]")
41
+ {
42
+ MarkdownParser parser;
43
+ MarkdownNode ast;
44
+
45
+ // "> Ni Hao"
46
+ ByteBuffer src = "> \xE4\xBD\xA0\xE5\xA5\xBD\n";
47
+
48
+ parser.parse(src, ast);
49
+
50
+ REQUIRE(ast.type == RootMarkdownNodeType);
51
+ REQUIRE(ast.text.empty());
52
+ REQUIRE(ast.data == 0);
53
+ REQUIRE(ast.children().size() == 1);
54
+ REQUIRE(ast.sourceMap.size() == 1);
55
+ REQUIRE(ast.sourceMap[0].location == 0);
56
+ REQUIRE(ast.sourceMap[0].length == 9);
57
+
58
+ MarkdownNode& quote = ast.children()[0];
59
+ REQUIRE(quote.type == QuoteMarkdownNodeType);
60
+ REQUIRE(quote.children().size() == 1);
61
+ REQUIRE(quote.sourceMap.size() == 1);
62
+ REQUIRE(quote.sourceMap[0].location == 0);
63
+ REQUIRE(quote.sourceMap[0].length == 9);
64
+
65
+ MarkdownNode& para = quote.children()[0];
66
+ REQUIRE(para.type == ParagraphMarkdownNodeType);
67
+ REQUIRE(para.sourceMap.size() == 1);
68
+ REQUIRE(para.sourceMap[0].location == 2);
69
+ REQUIRE(para.sourceMap[0].length == 7);
70
+
71
+ ByteBuffer mappedBuffer = MapBytesRangeSet(para.sourceMap, src);
72
+ REQUIRE(mappedBuffer == "\xE4\xBD\xA0\xE5\xA5\xBD\n");
73
+
74
+ CharactersRangeSet charMap = BytesRangeSetToCharactersRangeSet(quote.sourceMap, src);
75
+ REQUIRE(charMap.size() == 1);
76
+ REQUIRE(charMap[0].location == 0);
77
+ REQUIRE(charMap[0].length == 5);
78
+
79
+ charMap = BytesRangeSetToCharactersRangeSet(para.sourceMap, src);
80
+ REQUIRE(charMap.size() == 1);
81
+ REQUIRE(charMap[0].location == 2);
82
+ REQUIRE(charMap[0].length == 3);
83
+ }
@@ -0,0 +1,628 @@
1
+ //
2
+ // test-MarkdownParser.cc
3
+ // markdownparser
4
+ //
5
+ // Created by Zdenek Nemec on 4/18/14.
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "catch.hpp"
10
+ #include "MarkdownParser.h"
11
+
12
+ using namespace mdp;
13
+
14
+ TEST_CASE("Parse one paragaraph", "[parser][paragraph]")
15
+ {
16
+ MarkdownParser parser;
17
+ MarkdownNode ast;
18
+
19
+ // NOTE: +1 Error
20
+ // Used version of sundown automatically adds a newline if one is missing.
21
+ // If the input buffer does not ends with new line it might be "prolonged".
22
+
23
+ parser.parse("Hello World!\n", ast);
24
+
25
+ REQUIRE(ast.type == RootMarkdownNodeType);
26
+ REQUIRE(ast.text.empty());
27
+ REQUIRE(ast.children().size() == 1);
28
+ REQUIRE(ast.sourceMap.size() == 1);
29
+ REQUIRE(ast.sourceMap[0].location == 0);
30
+ REQUIRE(ast.sourceMap[0].length == 13);
31
+
32
+ MarkdownNode& node = ast.children().front();
33
+ REQUIRE(node.type == ParagraphMarkdownNodeType);
34
+ REQUIRE(node.text == "Hello World!");
35
+ REQUIRE(node.children().empty());
36
+ REQUIRE(node.sourceMap.size() == 1);
37
+ REQUIRE(node.sourceMap[0].location == 0);
38
+ REQUIRE(node.sourceMap[0].length == 13);
39
+ }
40
+
41
+ TEST_CASE("Parse when starting with empty line", "[parser][empty_line]")
42
+ {
43
+ MarkdownParser parser;
44
+ MarkdownNode ast;
45
+
46
+ ByteBuffer src =\
47
+ "\n"\
48
+ "Lorem\n"\
49
+ "\n"\
50
+ "Ipsum\n";
51
+
52
+ parser.parse(src, ast);
53
+
54
+ REQUIRE(ast.type == RootMarkdownNodeType);
55
+ REQUIRE(ast.text.empty());
56
+ REQUIRE(ast.data == 0);
57
+ REQUIRE(ast.children().size() == 2);
58
+ REQUIRE(ast.sourceMap.size() == 1);
59
+ REQUIRE(ast.sourceMap[0].location == 0);
60
+ REQUIRE(ast.sourceMap[0].length == 14);
61
+
62
+ MarkdownNode& node = ast.children()[0];
63
+ REQUIRE(node.type == ParagraphMarkdownNodeType);
64
+ REQUIRE(node.text == "Lorem");
65
+ REQUIRE(node.data == 0);
66
+ REQUIRE(node.children().empty());
67
+ REQUIRE(node.sourceMap.size() == 1);
68
+ REQUIRE(node.sourceMap[0].location == 1);
69
+ REQUIRE(node.sourceMap[0].length == 7);
70
+
71
+ node = ast.children()[1];
72
+ REQUIRE(node.type == ParagraphMarkdownNodeType);
73
+ REQUIRE(node.text == "Ipsum");
74
+ REQUIRE(node.data == 0);
75
+ REQUIRE(node.children().empty());
76
+ REQUIRE(node.sourceMap.size() == 1);
77
+ REQUIRE(node.sourceMap[0].location == 8);
78
+ REQUIRE(node.sourceMap[0].length == 6);
79
+ }
80
+
81
+ TEST_CASE("Parse multiple paragaraphs", "[parser][paragraph]")
82
+ {
83
+ MarkdownParser parser;
84
+ MarkdownNode ast;
85
+
86
+ ByteBuffer src =\
87
+ "Lorem\n"\
88
+ "\n"\
89
+ "Ipsum\n";
90
+
91
+ parser.parse(src, ast);
92
+
93
+ REQUIRE(ast.type == RootMarkdownNodeType);
94
+ REQUIRE(ast.text.empty());
95
+ REQUIRE(ast.data == 0);
96
+ REQUIRE(ast.children().size() == 2);
97
+ REQUIRE(ast.sourceMap.size() == 1);
98
+ REQUIRE(ast.sourceMap[0].location == 0);
99
+ REQUIRE(ast.sourceMap[0].length == 13);
100
+
101
+ MarkdownNode& node = ast.children()[0];
102
+ REQUIRE(node.type == ParagraphMarkdownNodeType);
103
+ REQUIRE(node.text == "Lorem");
104
+ REQUIRE(node.data == 0);
105
+ REQUIRE(node.children().empty());
106
+ REQUIRE(node.sourceMap.size() == 1);
107
+ REQUIRE(node.sourceMap[0].location == 0);
108
+ REQUIRE(node.sourceMap[0].length == 7);
109
+
110
+ node = ast.children()[1];
111
+ REQUIRE(node.type == ParagraphMarkdownNodeType);
112
+ REQUIRE(node.text == "Ipsum");
113
+ REQUIRE(node.data == 0);
114
+ REQUIRE(node.children().empty());
115
+ REQUIRE(node.sourceMap.size() == 1);
116
+ REQUIRE(node.sourceMap[0].location == 7);
117
+ REQUIRE(node.sourceMap[0].length == 6);
118
+ }
119
+
120
+ TEST_CASE("Parse header", "[parser][header]")
121
+ {
122
+ MarkdownParser parser;
123
+ MarkdownNode ast;
124
+
125
+ ByteBuffer src = "# Header\n";
126
+
127
+ parser.parse(src, ast);
128
+
129
+ REQUIRE(ast.type == RootMarkdownNodeType);
130
+ REQUIRE(ast.text.empty());
131
+ REQUIRE(ast.data == 0);
132
+ REQUIRE(ast.children().size() == 1);
133
+ REQUIRE(ast.sourceMap.size() == 1);
134
+ REQUIRE(ast.sourceMap[0].location == 0);
135
+ REQUIRE(ast.sourceMap[0].length == 9);
136
+
137
+ MarkdownNode& node = ast.children().front();
138
+ REQUIRE(node.type == HeaderMarkdownNodeType);
139
+ REQUIRE(node.text == "Header");
140
+ REQUIRE(node.data == 1);
141
+ REQUIRE(node.children().empty());
142
+ REQUIRE(node.sourceMap.size() == 1);
143
+ REQUIRE(node.sourceMap[0].location == 0);
144
+ REQUIRE(node.sourceMap[0].length == 9);
145
+ }
146
+
147
+ TEST_CASE("Parse multiple headers", "[parser][header]")
148
+ {
149
+ MarkdownParser parser;
150
+ MarkdownNode ast;
151
+
152
+ ByteBuffer src =\
153
+ "# Header 1\n"\
154
+ "## Header 2\n";
155
+
156
+ parser.parse(src, ast);
157
+
158
+ REQUIRE(ast.type == RootMarkdownNodeType);
159
+ REQUIRE(ast.text.empty());
160
+ REQUIRE(ast.data == 0);
161
+ REQUIRE(ast.children().size() == 2);
162
+ REQUIRE(ast.sourceMap.size() == 1);
163
+ REQUIRE(ast.sourceMap[0].location == 0);
164
+ REQUIRE(ast.sourceMap[0].length == 23);
165
+
166
+ MarkdownNode node = ast.children()[0];
167
+ REQUIRE(node.type == HeaderMarkdownNodeType);
168
+ REQUIRE(node.text == "Header 1");
169
+ REQUIRE(node.data == 1);
170
+ REQUIRE(node.children().empty());
171
+ REQUIRE(node.sourceMap.size() == 1);
172
+ REQUIRE(node.sourceMap[0].location == 0);
173
+ REQUIRE(node.sourceMap[0].length == 11);
174
+
175
+ node = ast.children()[1];
176
+ REQUIRE(node.type == HeaderMarkdownNodeType);
177
+ REQUIRE(node.text == "Header 2");
178
+ REQUIRE(node.data == 2);
179
+ REQUIRE(node.children().empty());
180
+ REQUIRE(node.sourceMap.size() == 1);
181
+ REQUIRE(node.sourceMap[0].location == 11);
182
+ REQUIRE(node.sourceMap[0].length == 12);
183
+ }
184
+
185
+ TEST_CASE("Parse horizontal rule", "[parser][hrule]")
186
+ {
187
+ MarkdownParser parser;
188
+ MarkdownNode ast;
189
+
190
+ ByteBuffer src = "---\n";
191
+
192
+ parser.parse(src, ast);
193
+
194
+ REQUIRE(ast.type == RootMarkdownNodeType);
195
+ REQUIRE(ast.text.empty());
196
+ REQUIRE(ast.data == 0);
197
+ REQUIRE(ast.children().size() == 1);
198
+ REQUIRE(ast.sourceMap.size() == 1);
199
+ REQUIRE(ast.sourceMap[0].location == 0);
200
+ REQUIRE(ast.sourceMap[0].length == 4);
201
+
202
+ MarkdownNode node = ast.children().front();
203
+ REQUIRE(node.type == HRuleMarkdownNodeType);
204
+ REQUIRE(node.text.empty());
205
+ REQUIRE(node.data == 0);
206
+ REQUIRE(node.children().empty());
207
+ REQUIRE(node.sourceMap.size() == 1);
208
+ REQUIRE(node.sourceMap[0].location == 0);
209
+ REQUIRE(node.sourceMap[0].length == 4);
210
+ }
211
+
212
+ TEST_CASE("Parse code block", "[parser][code]")
213
+ {
214
+ MarkdownParser parser;
215
+ MarkdownNode ast;
216
+
217
+ ByteBuffer src = " <code>42</code>\n";
218
+
219
+ parser.parse(src, ast);
220
+
221
+ REQUIRE(ast.type == RootMarkdownNodeType);
222
+ REQUIRE(ast.text.empty());
223
+ REQUIRE(ast.data == 0);
224
+ REQUIRE(ast.children().size() == 1);
225
+ REQUIRE(ast.sourceMap.size() == 1);
226
+ REQUIRE(ast.sourceMap[0].location == 0);
227
+ REQUIRE(ast.sourceMap[0].length == 20);
228
+
229
+ MarkdownNode node = ast.children().front();
230
+ REQUIRE(node.type == CodeMarkdownNodeType);
231
+ REQUIRE(node.text == "<code>42</code>\n");
232
+ REQUIRE(node.data == 0);
233
+ REQUIRE(node.children().empty());
234
+ REQUIRE(node.sourceMap.size() == 1);
235
+ REQUIRE(node.sourceMap[0].location == 0);
236
+ REQUIRE(node.sourceMap[0].length == 20);
237
+ }
238
+
239
+ TEST_CASE("Parse HTML block tag", "[parser][html]")
240
+ {
241
+ MarkdownParser parser;
242
+ MarkdownNode ast;
243
+
244
+ ByteBuffer src = "<div>some</div>\n";
245
+
246
+ parser.parse(src, ast);
247
+
248
+ REQUIRE(ast.type == RootMarkdownNodeType);
249
+ REQUIRE(ast.text.empty());
250
+ REQUIRE(ast.data == 0);
251
+ REQUIRE(ast.children().size() == 1);
252
+ REQUIRE(ast.sourceMap.size() == 1);
253
+ REQUIRE(ast.sourceMap[0].location == 0);
254
+ REQUIRE(ast.sourceMap[0].length == 16);
255
+
256
+ MarkdownNode node = ast.children().front();
257
+ REQUIRE(node.type == HTMLMarkdownNodeType);
258
+ REQUIRE(node.text == "<div>some</div>\n");
259
+ REQUIRE(node.data == 0);
260
+ REQUIRE(node.children().empty());
261
+ REQUIRE(node.sourceMap.size() == 1);
262
+ REQUIRE(node.sourceMap[0].location == 0);
263
+ REQUIRE(node.sourceMap[0].length == 16);
264
+ }
265
+
266
+ TEST_CASE("Parse single list item", "[parser][list]")
267
+ {
268
+ MarkdownParser parser;
269
+ MarkdownNode ast;
270
+
271
+ ByteBuffer src = "- list item\n";
272
+
273
+ parser.parse(src, ast);
274
+
275
+ REQUIRE(ast.type == RootMarkdownNodeType);
276
+ REQUIRE(ast.text.empty());
277
+ REQUIRE(ast.data == 0);
278
+ REQUIRE(ast.children().size() == 1);
279
+ REQUIRE(ast.sourceMap.size() == 1);
280
+ REQUIRE(ast.sourceMap[0].location == 0);
281
+ REQUIRE(ast.sourceMap[0].length == 12);
282
+
283
+ MarkdownNode node = ast.children()[0];
284
+ REQUIRE(node.type == ListItemMarkdownNodeType);
285
+ REQUIRE(node.text.empty());
286
+ REQUIRE(node.data == 0);
287
+ REQUIRE(node.children().size() == 1);
288
+ REQUIRE(node.sourceMap.size() == 1);
289
+ REQUIRE(node.sourceMap[0].location == 0);
290
+ REQUIRE(node.sourceMap[0].length == 12);
291
+
292
+ node = node.children()[0];
293
+ REQUIRE(node.type == ParagraphMarkdownNodeType);
294
+ REQUIRE(node.text == "list item\n");
295
+ REQUIRE(node.data == 0);
296
+ REQUIRE(node.children().empty());
297
+ REQUIRE(node.sourceMap.size() == 1);
298
+ REQUIRE(node.sourceMap[0].location == 2);
299
+ REQUIRE(node.sourceMap[0].length == 10);
300
+ }
301
+
302
+ TEST_CASE("Parse nested list items", "[parser][list]")
303
+ {
304
+ MarkdownParser parser;
305
+ MarkdownNode ast;
306
+
307
+ ByteBuffer src =\
308
+ "- A\n"\
309
+ " - B\n"\
310
+ " - C\n"\
311
+ " - D\n"\
312
+ "- E\n";
313
+
314
+ /* Topology:
315
+
316
+ + root
317
+ + list item
318
+ + paragraph "A"
319
+ + list item
320
+ + paragraph "B"
321
+ + list item
322
+ + paragraph "C"
323
+ + list item
324
+ + paragraph "D"
325
+ + list item
326
+ + paragraph "E"
327
+ */
328
+
329
+ parser.parse(src, ast);
330
+
331
+ REQUIRE(ast.type == RootMarkdownNodeType);
332
+ REQUIRE(ast.text.empty());
333
+ REQUIRE(ast.data == 0);
334
+ REQUIRE(ast.children().size() == 2);
335
+ REQUIRE(ast.sourceMap.size() == 1);
336
+ REQUIRE(ast.sourceMap[0].location == 0);
337
+ REQUIRE(ast.sourceMap[0].length == 36);
338
+
339
+ // List Item A
340
+ MarkdownNode& itemA = ast.children()[0];
341
+ REQUIRE(itemA.type == ListItemMarkdownNodeType);
342
+ REQUIRE(itemA.text.empty());
343
+ REQUIRE(itemA.data == 0);
344
+ REQUIRE(itemA.children().size() == 3);
345
+ REQUIRE(itemA.sourceMap.size() == 1);
346
+ REQUIRE(itemA.sourceMap[0].location == 0);
347
+ REQUIRE(itemA.sourceMap[0].length == 32);
348
+
349
+ REQUIRE(itemA.children()[0].type == ParagraphMarkdownNodeType);
350
+ REQUIRE(itemA.children()[0].text == "A\n");
351
+ REQUIRE(itemA.children()[0].data == 0);
352
+ REQUIRE(itemA.children()[0].children().empty());
353
+ REQUIRE(itemA.children()[0].sourceMap.size() == 1);
354
+ REQUIRE(itemA.children()[0].sourceMap[0].location == 2);
355
+ REQUIRE(itemA.children()[0].sourceMap[0].length == 2);
356
+
357
+ // List Item B
358
+ MarkdownNode itemB = itemA.children()[1];
359
+ REQUIRE(itemB.type == ListItemMarkdownNodeType);
360
+ REQUIRE(itemB.text.empty());
361
+ REQUIRE(itemB.data == 0);
362
+ REQUIRE(itemB.children().size() == 2);
363
+ REQUIRE(itemB.sourceMap.size() == 2);
364
+ REQUIRE(itemB.sourceMap[0].location == 8);
365
+ REQUIRE(itemB.sourceMap[0].length == 4);
366
+ REQUIRE(itemB.sourceMap[1].location == 16);
367
+ REQUIRE(itemB.sourceMap[1].length == 8);
368
+
369
+ REQUIRE(itemB.children()[0].type == ParagraphMarkdownNodeType);
370
+ REQUIRE(itemB.children()[0].text == "B\n");
371
+ REQUIRE(itemB.children()[0].data == 0);
372
+ REQUIRE(itemB.children()[0].children().empty());
373
+ MarkdownNode paraBX = itemB.children()[0];
374
+ REQUIRE(itemB.children()[0].sourceMap.size() == 1);
375
+ REQUIRE(itemB.children()[0].sourceMap[0].location == 10);
376
+ REQUIRE(itemB.children()[0].sourceMap[0].length == 2);
377
+
378
+ // List Item C
379
+ MarkdownNode itemC = itemB.children()[1];
380
+ REQUIRE(itemC.type == ListItemMarkdownNodeType);
381
+ REQUIRE(itemC.text.empty());
382
+ REQUIRE(itemC.data == 0);
383
+ REQUIRE(itemC.children().size() == 1);
384
+ REQUIRE(itemC.sourceMap.size() == 1);
385
+ REQUIRE(itemC.sourceMap[0].location == 20);
386
+ REQUIRE(itemC.sourceMap[0].length == 4);
387
+
388
+ REQUIRE(itemC.children()[0].type == ParagraphMarkdownNodeType);
389
+ REQUIRE(itemC.children()[0].text == "C\n");
390
+ REQUIRE(itemC.children()[0].data == 0);
391
+ REQUIRE(itemC.children()[0].children().empty());
392
+ REQUIRE(itemC.children()[0].sourceMap.size() == 1);
393
+ REQUIRE(itemC.children()[0].sourceMap[0].location == 22);
394
+ REQUIRE(itemC.children()[0].sourceMap[0].length == 2);
395
+
396
+ // List Item D
397
+ MarkdownNode itemD = itemA.children()[2];
398
+ REQUIRE(itemD.type == ListItemMarkdownNodeType);
399
+ REQUIRE(itemD.text.empty());
400
+ REQUIRE(itemD.data == 0);
401
+ REQUIRE(itemD.children().size() == 1);
402
+ REQUIRE(itemD.sourceMap.size() == 1);
403
+ REQUIRE(itemD.sourceMap[0].location == 28);
404
+ REQUIRE(itemD.sourceMap[0].length == 4);
405
+
406
+ REQUIRE(itemD.children()[0].type == ParagraphMarkdownNodeType);
407
+ REQUIRE(itemD.children()[0].text == "D\n");
408
+ REQUIRE(itemD.children()[0].data == 0);
409
+ REQUIRE(itemD.children()[0].children().empty());
410
+ REQUIRE(itemD.children()[0].sourceMap.size() == 1);
411
+ REQUIRE(itemD.children()[0].sourceMap[0].location == 30);
412
+ REQUIRE(itemD.children()[0].sourceMap[0].length == 2);
413
+
414
+ // List Item E
415
+ MarkdownNode itemE = ast.children()[1];
416
+ REQUIRE(itemE.type == ListItemMarkdownNodeType);
417
+ REQUIRE(itemE.text.empty());
418
+ REQUIRE(itemE.data == 0);
419
+ REQUIRE(itemE.children().size() == 1);
420
+ REQUIRE(itemE.sourceMap.size() == 1);
421
+ REQUIRE(itemE.sourceMap[0].location == 32);
422
+ REQUIRE(itemE.sourceMap[0].length == 4);
423
+
424
+ REQUIRE(itemE.children()[0].type == ParagraphMarkdownNodeType);
425
+ REQUIRE(itemE.children()[0].text == "E\n");
426
+ REQUIRE(itemE.children()[0].data == 0);
427
+ REQUIRE(itemE.children()[0].children().empty());
428
+ REQUIRE(itemE.children()[0].sourceMap.size() == 1);
429
+ REQUIRE(itemE.children()[0].sourceMap[0].location == 34);
430
+ REQUIRE(itemE.children()[0].sourceMap[0].length == 2);
431
+ }
432
+
433
+ TEST_CASE("Parse list item with multiple paragraphs", "[parser][list]")
434
+ {
435
+ MarkdownParser parser;
436
+ MarkdownNode ast;
437
+
438
+ ByteBuffer src =\
439
+ "- A\n"\
440
+ "\n"\
441
+ " C\n"\
442
+ " D\n"\
443
+ "\n"\
444
+ " E\n";
445
+
446
+ parser.parse(src, ast);
447
+
448
+ REQUIRE(ast.type == RootMarkdownNodeType);
449
+ REQUIRE(ast.text.empty());
450
+ REQUIRE(ast.data == 0);
451
+ REQUIRE(ast.children().size() == 1);
452
+ REQUIRE(ast.sourceMap.size() == 1);
453
+ REQUIRE(ast.sourceMap[0].location == 0);
454
+ REQUIRE(ast.sourceMap[0].length == 24);
455
+
456
+ MarkdownNode node = ast.children()[0];
457
+ REQUIRE(node.type == ListItemMarkdownNodeType);
458
+ REQUIRE(node.text.empty());
459
+ REQUIRE(node.data == 2);
460
+ REQUIRE(node.children().size() == 3);
461
+ REQUIRE(node.sourceMap.size() == 1);
462
+ REQUIRE(node.sourceMap[0].location == 0);
463
+ REQUIRE(node.sourceMap[0].length == 24);
464
+
465
+ MarkdownNode& p1 = node.children()[0];
466
+ REQUIRE(p1.type == ParagraphMarkdownNodeType);
467
+ REQUIRE(p1.text == "A");
468
+ REQUIRE(p1.data == 0);
469
+ REQUIRE(p1.children().empty());
470
+ REQUIRE(p1.sourceMap.size() == 1);
471
+ REQUIRE(p1.sourceMap[0].location == 2);
472
+ REQUIRE(p1.sourceMap[0].length == 3);
473
+
474
+ MarkdownNode& p2 = node.children()[1];
475
+ REQUIRE(p2.type == ParagraphMarkdownNodeType);
476
+ REQUIRE(p2.text == "C\nD");
477
+ REQUIRE(p2.data == 0);
478
+ REQUIRE(p2.children().empty());
479
+ REQUIRE(p2.sourceMap.size() == 2);
480
+ REQUIRE(p2.sourceMap[0].location == 9);
481
+ REQUIRE(p2.sourceMap[0].length == 2);
482
+ REQUIRE(p2.sourceMap[1].location == 15);
483
+ REQUIRE(p2.sourceMap[1].length == 3);
484
+
485
+ MarkdownNode& p3 = node.children()[2];
486
+ REQUIRE(p3.type == ParagraphMarkdownNodeType);
487
+ REQUIRE(p3.text == "E");
488
+ REQUIRE(p3.data == 0);
489
+ REQUIRE(p3.children().empty());
490
+ REQUIRE(p3.sourceMap.size() == 1);
491
+ REQUIRE(p3.sourceMap[0].location == 22);
492
+ REQUIRE(p3.sourceMap[0].length == 2);
493
+ }
494
+
495
+ TEST_CASE("Parse a simple quote", "[parser][quote]")
496
+ {
497
+ MarkdownParser parser;
498
+ MarkdownNode ast;
499
+
500
+ ByteBuffer src = "> quote\n";
501
+
502
+ parser.parse(src, ast);
503
+
504
+ REQUIRE(ast.type == RootMarkdownNodeType);
505
+ REQUIRE(ast.text.empty());
506
+ REQUIRE(ast.data == 0);
507
+ REQUIRE(ast.children().size() == 1);
508
+ REQUIRE(ast.sourceMap.size() == 1);
509
+ REQUIRE(ast.sourceMap[0].location == 0);
510
+ REQUIRE(ast.sourceMap[0].length == 8);
511
+
512
+ MarkdownNode& quote = ast.children()[0];
513
+ REQUIRE(quote.type == QuoteMarkdownNodeType);
514
+ REQUIRE(quote.text.empty());
515
+ REQUIRE(quote.data == 0);
516
+ REQUIRE(quote.children().size() == 1);
517
+ REQUIRE(quote.sourceMap.size() == 1);
518
+ REQUIRE(quote.sourceMap[0].location == 0);
519
+ REQUIRE(quote.sourceMap[0].length == 8);
520
+
521
+ MarkdownNode& para = quote.children()[0];
522
+ REQUIRE(para.type == ParagraphMarkdownNodeType);
523
+ REQUIRE(para.text == "quote");
524
+ REQUIRE(para.data == 0);
525
+ REQUIRE(para.children().empty());
526
+ REQUIRE(para.sourceMap.size() == 1);
527
+ REQUIRE(para.sourceMap[0].location == 2);
528
+ REQUIRE(para.sourceMap[0].length == 6);
529
+ }
530
+
531
+ TEST_CASE("Source map crash", "[parser][sourcemap][issue][snowcrash][62]")
532
+ {
533
+ MarkdownParser parser;
534
+ MarkdownNode ast;
535
+
536
+ ByteBuffer src = \
537
+ "* B\n"\
538
+ ">* CCC CC\n"\
539
+ ">* D\n"\
540
+ "\n"\
541
+ "* E\n";
542
+
543
+ parser.parse(src, ast);
544
+
545
+ REQUIRE(ast.type == RootMarkdownNodeType);
546
+ REQUIRE(ast.text.empty());
547
+ REQUIRE(ast.data == 0);
548
+ REQUIRE(ast.children().size() == 2);
549
+ }
550
+
551
+ TEST_CASE("Map node without trailing newline", "[parser][sourcemap]")
552
+ {
553
+ MarkdownParser parser;
554
+ MarkdownNode ast;
555
+
556
+ ByteBuffer src = "# Hello World";
557
+
558
+ parser.parse(src, ast);
559
+
560
+ REQUIRE(ast.type == RootMarkdownNodeType);
561
+ REQUIRE(ast.text.empty());
562
+ REQUIRE(ast.data == 0);
563
+ REQUIRE(ast.children().size() == 1);
564
+ REQUIRE(ast.sourceMap.size() == 1);
565
+ REQUIRE(ast.sourceMap[0].location == 0);
566
+ REQUIRE(ast.sourceMap[0].length == 13);
567
+
568
+ MarkdownNode& node = ast.children().front();
569
+ REQUIRE(node.type == HeaderMarkdownNodeType);
570
+ REQUIRE(node.text == "Hello World");
571
+ REQUIRE(node.children().empty());
572
+ REQUIRE(node.sourceMap.size() == 1);
573
+ REQUIRE(node.sourceMap[0].location == 0);
574
+ REQUIRE(node.sourceMap[0].length == 13);
575
+ }
576
+
577
+ TEST_CASE("Multi-paragraph list item source map", "[parser][sourcemap]")
578
+ {
579
+ MarkdownParser parser;
580
+ MarkdownNode ast;
581
+
582
+ // List item with two paragraphs & lazy indentation:
583
+ //
584
+ //+ Lorem ipsum
585
+ //dolor sit amet
586
+ //
587
+ // consectetur
588
+ //adipiscing elit
589
+
590
+ ByteBuffer src = \
591
+ "+ Lorem ipsum\n"\
592
+ "dolor sit amet\n"\
593
+ "\n"\
594
+ " consectetur\n"\
595
+ "adipiscing elit\n";
596
+
597
+ parser.parse(src, ast);
598
+
599
+ REQUIRE(ast.type == RootMarkdownNodeType);
600
+ REQUIRE(ast.text.empty());
601
+ REQUIRE(ast.data == 0);
602
+ REQUIRE(ast.children().size() == 1);
603
+ REQUIRE(ast.sourceMap.size() == 1);
604
+ REQUIRE(ast.sourceMap[0].location == 0);
605
+ REQUIRE(ast.sourceMap[0].length == 64);
606
+
607
+ MarkdownNode& node = ast.children().front();
608
+ REQUIRE(node.type == ListItemMarkdownNodeType);
609
+ REQUIRE(node.children().size() == 2);
610
+ REQUIRE(node.sourceMap.size() == 1);
611
+ REQUIRE(node.sourceMap[0].location == 0);
612
+ REQUIRE(node.sourceMap[0].length == 64);
613
+
614
+ MarkdownNode& p1 = node.children().front();
615
+ REQUIRE(p1.text == " Lorem ipsum\ndolor sit amet");
616
+ REQUIRE(p1.children().empty());
617
+ REQUIRE(p1.sourceMap.size() == 1);
618
+ REQUIRE(p1.sourceMap[0].location == 2);
619
+ REQUIRE(p1.sourceMap[0].length == 30);
620
+
621
+ MarkdownNode& p2 = node.children().back();
622
+ REQUIRE(p2.text == "consectetur\nadipiscing elit");
623
+ REQUIRE(p2.children().empty());
624
+ REQUIRE(p2.sourceMap.size() == 1);
625
+ REQUIRE(p2.sourceMap[0].location == 36);
626
+ REQUIRE(p2.sourceMap[0].length == 28);
627
+ }
628
+