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,224 @@
1
+ //
2
+ // test-AssetParser.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 5/17/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "snowcrashtest.h"
10
+ #include "AssetParser.h"
11
+
12
+ using namespace snowcrash;
13
+ using namespace snowcrashtest;
14
+
15
+ const mdp::ByteBuffer BodyAssetFixture = \
16
+ "+ Body\n"\
17
+ "\n"\
18
+ " Lorem Ipsum\n";
19
+
20
+ const mdp::ByteBuffer SchemaAssetFixture = \
21
+ "+ Schema\n"\
22
+ "\n"\
23
+ " Dolor Sit Amet\n";
24
+
25
+ TEST_CASE("recognize explicit body signature", "[asset]")
26
+ {
27
+ mdp::MarkdownParser markdownParser;
28
+ mdp::MarkdownNode markdownAST;
29
+ markdownParser.parse(BodyAssetFixture, markdownAST);
30
+
31
+ REQUIRE(!markdownAST.children().empty());
32
+ SectionType sectionType = SectionProcessor<Asset>::sectionType(markdownAST.children().begin());
33
+ REQUIRE(sectionType == BodySectionType);
34
+ }
35
+
36
+ TEST_CASE("recognize body with content on signature", "[asset]")
37
+ {
38
+ mdp::ByteBuffer source = \
39
+ "+ Body\n"\
40
+ " Lorem Ipsum\n";
41
+
42
+ mdp::MarkdownParser markdownParser;
43
+ mdp::MarkdownNode markdownAST;
44
+ markdownParser.parse(source, markdownAST);
45
+
46
+ REQUIRE(!markdownAST.children().empty());
47
+ SectionType sectionType = SectionProcessor<Asset>::sectionType(markdownAST.children().begin());
48
+ REQUIRE(sectionType == BodySectionType);
49
+ }
50
+
51
+ TEST_CASE("recognize schema signature", "[asset]")
52
+ {
53
+ mdp::MarkdownParser markdownParser;
54
+ mdp::MarkdownNode markdownAST;
55
+ markdownParser.parse(SchemaAssetFixture, markdownAST);
56
+
57
+ REQUIRE(!markdownAST.children().empty());
58
+ SectionType sectionType = SectionProcessor<Asset>::sectionType(markdownAST.children().begin());
59
+ REQUIRE(sectionType == SchemaSectionType);
60
+ }
61
+
62
+ TEST_CASE("parse body asset", "[asset]")
63
+ {
64
+ ParseResult<Asset> asset;
65
+ SectionParserHelper<Asset, AssetParser>::parse(BodyAssetFixture, BodySectionType, asset, ExportSourcemapOption);
66
+
67
+ REQUIRE(asset.report.error.code == Error::OK);
68
+ REQUIRE(asset.report.warnings.empty());
69
+ REQUIRE(asset.node == "Lorem Ipsum\n");
70
+
71
+ REQUIRE(asset.sourceMap.sourceMap.size() == 1);
72
+ REQUIRE(asset.sourceMap.sourceMap[0].location == 12);
73
+ REQUIRE(asset.sourceMap.sourceMap[0].length == 16);
74
+ }
75
+
76
+ TEST_CASE("parse schema asset", "[asset]")
77
+ {
78
+ ParseResult<Asset> asset;
79
+ SectionParserHelper<Asset, AssetParser>::parse(SchemaAssetFixture, SchemaSectionType, asset, ExportSourcemapOption);
80
+
81
+ REQUIRE(asset.report.error.code == Error::OK);
82
+ REQUIRE(asset.report.warnings.empty());
83
+ REQUIRE(asset.node == "Dolor Sit Amet\n");
84
+
85
+ REQUIRE(asset.sourceMap.sourceMap.size() == 1);
86
+ REQUIRE(asset.sourceMap.sourceMap[0].location == 14);
87
+ REQUIRE(asset.sourceMap.sourceMap[0].length == 19);
88
+ }
89
+
90
+ TEST_CASE("Foreign block inside", "[asset]")
91
+ {
92
+ mdp::ByteBuffer source = BodyAssetFixture;
93
+ source += \
94
+ "\n"\
95
+ " Hello World!\n";
96
+
97
+ ParseResult<Asset> asset;
98
+ SectionParserHelper<Asset, AssetParser>::parse(source, BodySectionType, asset, ExportSourcemapOption);
99
+
100
+ REQUIRE(asset.report.error.code == Error::OK);
101
+ REQUIRE(asset.report.warnings.size() == 1);
102
+ REQUIRE(asset.report.warnings[0].code == IndentationWarning);
103
+ REQUIRE(asset.node == "Lorem Ipsum\nHello World!\n");
104
+
105
+ REQUIRE(asset.sourceMap.sourceMap.size() == 2);
106
+ REQUIRE(asset.sourceMap.sourceMap[0].location == 12);
107
+ REQUIRE(asset.sourceMap.sourceMap[0].length == 17);
108
+ REQUIRE(asset.sourceMap.sourceMap[1].location == 33);
109
+ REQUIRE(asset.sourceMap.sourceMap[1].length == 13);
110
+ }
111
+
112
+ TEST_CASE("Nested list block inside", "[asset]")
113
+ {
114
+ mdp::ByteBuffer source = BodyAssetFixture;
115
+ source += \
116
+ "\n"\
117
+ " + Hello World!\n";
118
+
119
+ ParseResult<Asset> asset;
120
+ SectionParserHelper<Asset, AssetParser>::parse(source, BodySectionType, asset, ExportSourcemapOption);
121
+
122
+ REQUIRE(asset.report.error.code == Error::OK);
123
+ REQUIRE(asset.report.warnings.size() == 1);
124
+ REQUIRE(asset.report.warnings[0].code == IndentationWarning);
125
+ REQUIRE(asset.node == "Lorem Ipsum\n+ Hello World!\n");
126
+
127
+ REQUIRE(asset.sourceMap.sourceMap.size() == 2);
128
+ REQUIRE(asset.sourceMap.sourceMap[0].location == 12);
129
+ REQUIRE(asset.sourceMap.sourceMap[0].length == 16);
130
+ REQUIRE(asset.sourceMap.sourceMap[1].location == 33);
131
+ REQUIRE(asset.sourceMap.sourceMap[1].length == 15);
132
+ }
133
+
134
+ TEST_CASE("Multiline signature", "[asset]")
135
+ {
136
+ mdp::ByteBuffer source = \
137
+ "+ Body\n"
138
+ " Multiline Signature Content\n"\
139
+ "\n"\
140
+ " Hello World!\n";
141
+
142
+ ParseResult<Asset> asset;
143
+ SectionParserHelper<Asset, AssetParser>::parse(source, BodySectionType, asset, ExportSourcemapOption);
144
+
145
+ REQUIRE(asset.report.error.code == Error::OK);
146
+ REQUIRE(asset.report.warnings.size() == 1);
147
+ REQUIRE(asset.report.warnings[0].code == IndentationWarning);
148
+ REQUIRE(asset.node == "Multiline Signature Content\nHello World!\n");
149
+
150
+ REQUIRE(asset.sourceMap.sourceMap.size() == 3);
151
+ REQUIRE(asset.sourceMap.sourceMap[0].location == 2);
152
+ REQUIRE(asset.sourceMap.sourceMap[0].length == 5);
153
+ REQUIRE(asset.sourceMap.sourceMap[1].location == 9);
154
+ REQUIRE(asset.sourceMap.sourceMap[1].length == 29);
155
+ REQUIRE(asset.sourceMap.sourceMap[2].location == 42);
156
+ REQUIRE(asset.sourceMap.sourceMap[2].length == 17);
157
+ }
158
+
159
+ TEST_CASE("Multiple blocks", "[asset]")
160
+ {
161
+ mdp::ByteBuffer source = \
162
+ "+ Body\n"\
163
+ "\n"\
164
+ " Block 1\n"\
165
+ "\n"\
166
+ " Block 2\n"\
167
+ "\n"\
168
+ " Block 3\n";
169
+
170
+ ParseResult<Asset> asset;
171
+ SectionParserHelper<Asset, AssetParser>::parse(source, BodySectionType, asset, ExportSourcemapOption);
172
+
173
+ REQUIRE(asset.report.error.code == Error::OK);
174
+ REQUIRE(asset.report.warnings.size() == 2);
175
+ REQUIRE(asset.report.warnings[0].code == IndentationWarning);
176
+ REQUIRE(asset.report.warnings[1].code == IndentationWarning);
177
+ REQUIRE(asset.node == "Block 1\n\nBlock 2\nBlock 3\n");
178
+
179
+ REQUIRE(asset.sourceMap.sourceMap.size() == 3);
180
+ REQUIRE(asset.sourceMap.sourceMap[0].location == 12);
181
+ REQUIRE(asset.sourceMap.sourceMap[0].length == 9);
182
+ REQUIRE(asset.sourceMap.sourceMap[1].location == 25);
183
+ REQUIRE(asset.sourceMap.sourceMap[1].length == 13);
184
+ REQUIRE(asset.sourceMap.sourceMap[2].location == 42);
185
+ REQUIRE(asset.sourceMap.sourceMap[2].length == 8);
186
+ }
187
+
188
+ TEST_CASE("Extra spaces before signature", "[asset]")
189
+ {
190
+ mdp::ByteBuffer source = \
191
+ "+ Body\n"\
192
+ "\n"\
193
+ " Lorem Ipsum\n";
194
+
195
+ ParseResult<Asset> asset;
196
+ SectionParserHelper<Asset, AssetParser>::parse(source, BodySectionType, asset, ExportSourcemapOption);
197
+
198
+ REQUIRE(asset.report.error.code == Error::OK);
199
+ REQUIRE(asset.report.warnings.empty());
200
+ REQUIRE(asset.node == "Lorem Ipsum\n");
201
+
202
+ REQUIRE(asset.sourceMap.sourceMap.size() == 1);
203
+ REQUIRE(asset.sourceMap.sourceMap[0].location == 14);
204
+ REQUIRE(asset.sourceMap.sourceMap[0].length == 16);
205
+ }
206
+
207
+ TEST_CASE("Asset parser greediness", "[asset]")
208
+ {
209
+ mdp::ByteBuffer source = BodyAssetFixture;
210
+ source +=\
211
+ "\n"\
212
+ "+ Another Block\n";
213
+
214
+ ParseResult<Asset> asset;
215
+ SectionParserHelper<Asset, AssetParser>::parse(source, BodySectionType, asset, ExportSourcemapOption);
216
+
217
+ REQUIRE(asset.report.error.code == Error::OK);
218
+ REQUIRE(asset.report.warnings.empty());
219
+ REQUIRE(asset.node == "Lorem Ipsum\n");
220
+
221
+ REQUIRE(asset.sourceMap.sourceMap.size() == 1);
222
+ REQUIRE(asset.sourceMap.sourceMap[0].location == 12);
223
+ REQUIRE(asset.sourceMap.sourceMap[0].length == 16);
224
+ }
@@ -0,0 +1,32 @@
1
+ //
2
+ // test-Blueprint.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 4/3/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "catch.hpp"
10
+ #include "Blueprint.h"
11
+
12
+ using namespace snowcrash;
13
+
14
+ TEST_CASE("blueprint/blueprint-init", "Blueprint initializaton")
15
+ {
16
+ Blueprint blueprint;
17
+ REQUIRE(blueprint.name.length() == 0);
18
+ REQUIRE(blueprint.description.length() == 0);
19
+ REQUIRE(blueprint.metadata.size() == 0);
20
+ REQUIRE(blueprint.resourceGroups.size() == 0);
21
+ }
22
+
23
+ TEST_CASE("blueprint/init", "Blueprint initializaton")
24
+ {
25
+ Blueprint blueprint;
26
+ REQUIRE(blueprint.name.length() == 0);
27
+ REQUIRE(blueprint.description.length() == 0);
28
+ REQUIRE(blueprint.metadata.size() == 0);
29
+ REQUIRE(blueprint.resourceGroups.size() == 0);
30
+ }
31
+
32
+
@@ -0,0 +1,462 @@
1
+ //
2
+ // test-BlueprintParser.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 4/16/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "snowcrashtest.h"
10
+ #include "BlueprintParser.h"
11
+
12
+ using namespace snowcrash;
13
+ using namespace snowcrashtest;
14
+
15
+ mdp::ByteBuffer BlueprintFixture = \
16
+ "meta: verse\n\n"\
17
+ "# Snowcrash API\n\n"\
18
+ "## Character\n"\
19
+ "Uncle Enzo\n\n"\
20
+ "# Group First\n"\
21
+ "p1\n"\
22
+ "## My Resource [/resource]\n"\
23
+ "# Group Second\n"\
24
+ "p2\n";
25
+
26
+ TEST_CASE("Blueprint block classifier", "[blueprint]")
27
+ {
28
+ mdp::MarkdownParser markdownParser;
29
+ mdp::MarkdownNode markdownAST;
30
+ SectionType sectionType;
31
+ markdownParser.parse(BlueprintFixture, markdownAST);
32
+
33
+ REQUIRE(!markdownAST.children().empty());
34
+
35
+ // meta: verse
36
+ sectionType = SectionProcessor<Blueprint>::sectionType(markdownAST.children().begin());
37
+ REQUIRE(sectionType == BlueprintSectionType);
38
+
39
+ // # Snowcrash API
40
+ sectionType = SectionProcessor<Blueprint>::sectionType(markdownAST.children().begin() + 1);
41
+ REQUIRE(sectionType == BlueprintSectionType);
42
+
43
+ // ## Character
44
+ sectionType = SectionProcessor<Blueprint>::sectionType(markdownAST.children().begin() + 2);
45
+ REQUIRE(sectionType == BlueprintSectionType);
46
+
47
+ // Uncle Enzo
48
+ sectionType = SectionProcessor<Blueprint>::sectionType(markdownAST.children().begin() + 3);
49
+ REQUIRE(sectionType == BlueprintSectionType);
50
+ }
51
+
52
+ TEST_CASE("Parse canonical blueprint", "[blueprint]")
53
+ {
54
+ ParseResult<Blueprint> blueprint;
55
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(BlueprintFixture, BlueprintSectionType, blueprint, ExportSourcemapOption);
56
+
57
+ REQUIRE(blueprint.report.error.code == Error::OK);
58
+ REQUIRE(blueprint.report.warnings.empty());
59
+
60
+ REQUIRE(blueprint.node.metadata.size() == 1);
61
+ REQUIRE(blueprint.node.metadata[0].first == "meta");
62
+ REQUIRE(blueprint.node.metadata[0].second == "verse");
63
+
64
+ REQUIRE(blueprint.node.name == "Snowcrash API");
65
+ REQUIRE(blueprint.node.description == "## Character\n\nUncle Enzo\n\n");
66
+ REQUIRE(blueprint.node.resourceGroups.size() == 2);
67
+
68
+ REQUIRE(blueprint.node.resourceGroups[0].name == "First");
69
+ REQUIRE(blueprint.node.resourceGroups[0].description == "p1\n");
70
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
71
+
72
+ REQUIRE(blueprint.node.resourceGroups[1].name == "Second");
73
+ REQUIRE(blueprint.node.resourceGroups[1].description == "p2\n");
74
+ REQUIRE(blueprint.node.resourceGroups[1].resources.empty());
75
+
76
+ REQUIRE(blueprint.sourceMap.name.sourceMap.size() == 1);
77
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].location == 13);
78
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].length == 17);
79
+ REQUIRE(blueprint.sourceMap.description.sourceMap.size() == 1);
80
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].location == 30);
81
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].length == 25);
82
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 1);
83
+ REQUIRE(blueprint.sourceMap.metadata.collection[0].sourceMap.size() == 1);
84
+ REQUIRE(blueprint.sourceMap.metadata.collection[0].sourceMap[0].location == 0);
85
+ REQUIRE(blueprint.sourceMap.metadata.collection[0].sourceMap[0].length == 13);
86
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 2);
87
+ }
88
+
89
+ TEST_CASE("Parse blueprint with multiple metadata sections", "[blueprint]")
90
+ {
91
+ mdp::ByteBuffer source = "FORMAT: 1A\n\n";
92
+ source += BlueprintFixture;
93
+
94
+ ParseResult<Blueprint> blueprint;
95
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption);
96
+
97
+ REQUIRE(blueprint.report.error.code == Error::OK);
98
+ REQUIRE(blueprint.report.warnings.empty());
99
+
100
+ REQUIRE(blueprint.node.metadata.size() == 2);
101
+ REQUIRE(blueprint.node.metadata[0].first == "FORMAT");
102
+ REQUIRE(blueprint.node.metadata[0].second == "1A");
103
+ REQUIRE(blueprint.node.metadata[1].first == "meta");
104
+ REQUIRE(blueprint.node.metadata[1].second == "verse");
105
+
106
+ REQUIRE(blueprint.node.name == "Snowcrash API");
107
+ REQUIRE(blueprint.node.description == "## Character\n\nUncle Enzo\n\n");
108
+ REQUIRE(blueprint.node.resourceGroups.size() == 2);
109
+
110
+ REQUIRE(blueprint.node.resourceGroups[0].name == "First");
111
+ REQUIRE(blueprint.node.resourceGroups[0].description == "p1\n");
112
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
113
+
114
+ REQUIRE(blueprint.node.resourceGroups[1].name == "Second");
115
+ REQUIRE(blueprint.node.resourceGroups[1].description == "p2\n");
116
+ REQUIRE(blueprint.node.resourceGroups[1].resources.empty());
117
+
118
+ REQUIRE(blueprint.sourceMap.name.sourceMap.size() == 1);
119
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].location == 25);
120
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].length == 17);
121
+ REQUIRE(blueprint.sourceMap.description.sourceMap.size() == 1);
122
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].location == 42);
123
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].length == 25);
124
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 2);
125
+ REQUIRE(blueprint.sourceMap.metadata.collection[0].sourceMap.size() == 1);
126
+ REQUIRE(blueprint.sourceMap.metadata.collection[0].sourceMap[0].location == 0);
127
+ REQUIRE(blueprint.sourceMap.metadata.collection[0].sourceMap[0].length == 12);
128
+ REQUIRE(blueprint.sourceMap.metadata.collection[1].sourceMap.size() == 1);
129
+ REQUIRE(blueprint.sourceMap.metadata.collection[1].sourceMap[0].location == 12);
130
+ REQUIRE(blueprint.sourceMap.metadata.collection[1].sourceMap[0].length == 13);
131
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 2);
132
+ }
133
+
134
+ TEST_CASE("Parse API with Name and abbreviated resource", "[blueprint]")
135
+ {
136
+ mdp::ByteBuffer source = \
137
+ "# API\n"\
138
+ "A\n"\
139
+ "# GET /resource\n"\
140
+ "B\n"\
141
+ "+ Response 200\n\n"\
142
+ " {}";
143
+
144
+ ParseResult<Blueprint> blueprint;
145
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption);
146
+
147
+ REQUIRE(blueprint.report.error.code == Error::OK);
148
+ REQUIRE(blueprint.report.warnings.empty());
149
+
150
+ REQUIRE(blueprint.node.name == "API");
151
+ REQUIRE(blueprint.node.description == "A\n");
152
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
153
+
154
+ ResourceGroup group = blueprint.node.resourceGroups.front();
155
+ REQUIRE(group.name.empty());
156
+ REQUIRE(group.description.empty());
157
+ REQUIRE(group.resources.size() == 1);
158
+
159
+ Resource resource = group.resources.front();
160
+ REQUIRE(resource.uriTemplate == "/resource");
161
+ REQUIRE(resource.actions.size() == 1);
162
+ REQUIRE(resource.actions.front().examples.size() == 1);
163
+ REQUIRE(resource.actions.front().examples.front().responses.size() == 1);
164
+ REQUIRE(resource.actions.front().examples.front().responses.front().body == "{}\n");
165
+
166
+ REQUIRE(blueprint.sourceMap.name.sourceMap.size() == 1);
167
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].location == 0);
168
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].length == 6);
169
+ REQUIRE(blueprint.sourceMap.description.sourceMap.size() == 1);
170
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].location == 6);
171
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].length == 2);
172
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 0);
173
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 1);
174
+ }
175
+
176
+ TEST_CASE("Parse nameless blueprint description", "[blueprint]")
177
+ {
178
+ mdp::ByteBuffer source = \
179
+ "A\n"\
180
+ "# B\n";
181
+
182
+ ParseResult<Blueprint> blueprint;
183
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption);
184
+
185
+ REQUIRE(blueprint.report.error.code == Error::OK);
186
+ REQUIRE(blueprint.report.warnings.size() == 1);
187
+ REQUIRE(blueprint.report.warnings[0].code == APINameWarning);
188
+
189
+ REQUIRE(blueprint.node.name.empty());
190
+ REQUIRE(blueprint.node.description == "A\n\n# B\n");
191
+ REQUIRE(blueprint.node.resourceGroups.size() == 0);
192
+
193
+ REQUIRE(blueprint.sourceMap.name.sourceMap.empty());
194
+ REQUIRE(blueprint.sourceMap.description.sourceMap.size() == 1);
195
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].location == 0);
196
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].length == 6);
197
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 0);
198
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 0);
199
+ }
200
+
201
+ TEST_CASE("Parse nameless blueprint with a list description", "[blueprint]")
202
+ {
203
+ mdp::ByteBuffer source = "+ List\n";
204
+
205
+ ParseResult<Blueprint> blueprint;
206
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption);
207
+
208
+ REQUIRE(blueprint.report.error.code == Error::OK);
209
+ REQUIRE(blueprint.report.warnings.size() == 1);
210
+ REQUIRE(blueprint.report.warnings[0].code == APINameWarning);
211
+
212
+ REQUIRE(blueprint.node.name.empty());
213
+ REQUIRE(blueprint.node.description == "+ List\n");
214
+ REQUIRE(blueprint.node.resourceGroups.size() == 0);
215
+
216
+ REQUIRE(blueprint.sourceMap.name.sourceMap.empty());
217
+ REQUIRE(blueprint.sourceMap.description.sourceMap.size() == 1);
218
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].location == 0);
219
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].length == 7);
220
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 0);
221
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 0);
222
+ }
223
+
224
+ TEST_CASE("Parse two groups with the same name", "[blueprint]")
225
+ {
226
+ mdp::ByteBuffer source = \
227
+ "# API\n"\
228
+ "# Group Name\n"\
229
+ "## /1\n"\
230
+ "### POST\n"\
231
+ "+ Request\n\n"\
232
+ " {}\n\n"\
233
+ "# Group Name\n";
234
+
235
+ ParseResult<Blueprint> blueprint;
236
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption);
237
+
238
+ REQUIRE(blueprint.report.error.code == Error::OK);
239
+ REQUIRE(blueprint.report.warnings.size() == 2); // groups with same name & no response
240
+
241
+ REQUIRE(blueprint.node.resourceGroups.size() == 2);
242
+
243
+ REQUIRE(blueprint.node.resourceGroups[0].name == "Name");
244
+ REQUIRE(blueprint.node.resourceGroups[0].description.empty());
245
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
246
+
247
+ REQUIRE(blueprint.node.resourceGroups[1].name == "Name");
248
+ REQUIRE(blueprint.node.resourceGroups[1].description.empty());
249
+
250
+ REQUIRE(blueprint.sourceMap.name.sourceMap.size() == 1);
251
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].location == 0);
252
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].length == 6);
253
+ REQUIRE(blueprint.sourceMap.description.sourceMap.empty());
254
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 0);
255
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 2);
256
+ }
257
+
258
+ TEST_CASE("Test parser options - required blueprint name", "[blueprint]")
259
+ {
260
+ mdp::ByteBuffer source = "Lorem Ipsum";
261
+
262
+ ParseResult<Blueprint> blueprint;
263
+
264
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint);
265
+ REQUIRE(blueprint.report.error.code == Error::OK);
266
+ REQUIRE(blueprint.report.warnings.size() == 1);
267
+ REQUIRE(blueprint.report.warnings[0].code == APINameWarning);
268
+
269
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, RequireBlueprintNameOption);
270
+ REQUIRE(blueprint.report.error.code != Error::OK);
271
+ }
272
+
273
+ TEST_CASE("Test required blueprint name on blueprint that starts with metadata", "[blueprint]")
274
+ {
275
+ mdp::ByteBuffer source = \
276
+ "meta: data\n"\
277
+ "foo:bar\n\n"\
278
+ "Hello";
279
+
280
+ ParseResult<Blueprint> blueprint;
281
+
282
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, RequireBlueprintNameOption);
283
+ REQUIRE(blueprint.report.error.code != Error::OK);
284
+ }
285
+
286
+ TEST_CASE("Should parse nested lists in description", "[blueprint]")
287
+ {
288
+ mdp::ByteBuffer source = \
289
+ "# API\n"\
290
+ "+ List\n"\
291
+ " + Nested Item\n";
292
+
293
+ ParseResult<Blueprint> blueprint;
294
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption);
295
+
296
+ REQUIRE(blueprint.report.error.code == Error::OK);
297
+ REQUIRE(blueprint.report.warnings.empty());
298
+
299
+ REQUIRE(blueprint.node.name == "API");
300
+ REQUIRE(blueprint.node.description == "+ List\n + Nested Item\n");
301
+ REQUIRE(blueprint.node.resourceGroups.empty());
302
+
303
+ REQUIRE(blueprint.sourceMap.name.sourceMap.size() == 1);
304
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].location == 0);
305
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].length == 6);
306
+ REQUIRE(blueprint.sourceMap.description.sourceMap.size() == 1);
307
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].location == 6);
308
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].length == 24);
309
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 0);
310
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 0);
311
+ }
312
+
313
+ TEST_CASE("Should parse paragraph without final newline", "[blueprint]")
314
+ {
315
+ mdp::ByteBuffer source = \
316
+ "# API\n"\
317
+ "Lorem Ipsum";
318
+
319
+ ParseResult<Blueprint> blueprint;
320
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint);
321
+
322
+ REQUIRE(blueprint.report.error.code == Error::OK);
323
+ REQUIRE(blueprint.report.warnings.empty());
324
+
325
+ REQUIRE(blueprint.node.name == "API");
326
+ REQUIRE(blueprint.node.description == "Lorem Ipsum");
327
+ REQUIRE(blueprint.node.resourceGroups.empty());
328
+ }
329
+
330
+ TEST_CASE("Blueprint starting with Resource Group should be parsed", "[blueprint]")
331
+ {
332
+ mdp::ByteBuffer source = \
333
+ "# Group Posts\n"\
334
+ "## /posts";
335
+
336
+ ParseResult<Blueprint> blueprint;
337
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption);
338
+
339
+ REQUIRE(blueprint.report.error.code == Error::OK);
340
+ REQUIRE(blueprint.report.warnings.empty());
341
+
342
+ REQUIRE(blueprint.node.name.empty());
343
+ REQUIRE(blueprint.node.description.empty());
344
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
345
+ REQUIRE(blueprint.node.resourceGroups.front().name == "Posts");
346
+ REQUIRE(blueprint.node.resourceGroups.front().resources.size() == 1);
347
+ REQUIRE(blueprint.node.resourceGroups.front().resources.front().uriTemplate == "/posts");
348
+
349
+ REQUIRE(blueprint.sourceMap.name.sourceMap.empty());
350
+ REQUIRE(blueprint.sourceMap.description.sourceMap.empty());
351
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 0);
352
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 1);
353
+ }
354
+
355
+ TEST_CASE("Blueprint starting with Resource should be parsed", "[blueprint]")
356
+ {
357
+ mdp::ByteBuffer source = "# /posts";
358
+
359
+ ParseResult<Blueprint> blueprint;
360
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption);
361
+
362
+ REQUIRE(blueprint.report.error.code == Error::OK);
363
+ REQUIRE(blueprint.report.warnings.empty());
364
+
365
+ REQUIRE(blueprint.node.name.empty());
366
+ REQUIRE(blueprint.node.description.empty());
367
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
368
+ REQUIRE(blueprint.node.resourceGroups.front().name.empty());
369
+ REQUIRE(blueprint.node.resourceGroups.front().resources.size() == 1);
370
+ REQUIRE(blueprint.node.resourceGroups.front().resources.front().uriTemplate == "/posts");
371
+
372
+ REQUIRE(blueprint.sourceMap.name.sourceMap.empty());
373
+ REQUIRE(blueprint.sourceMap.description.sourceMap.empty());
374
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 0);
375
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 1);
376
+ }
377
+
378
+ TEST_CASE("Checking a resource with global resources for duplicates", "[blueprint]")
379
+ {
380
+ mdp::ByteBuffer source = \
381
+ "# /posts\n"\
382
+ "# Group Posts\n"\
383
+ "## Posts [/posts]\n"\
384
+ "### Creat a post [POST]\n"\
385
+ "### List posts [GET]\n";
386
+
387
+ ParseResult<Blueprint> blueprint;
388
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption, Symbols(), &blueprint);
389
+
390
+ REQUIRE(blueprint.report.error.code == Error::OK);
391
+ REQUIRE(blueprint.report.warnings.size() == 3); // 2x no response & duplicate resource
392
+
393
+ REQUIRE(blueprint.node.name.empty());
394
+ REQUIRE(blueprint.node.description.empty());
395
+ REQUIRE(blueprint.node.resourceGroups.size() == 2);
396
+
397
+ REQUIRE(blueprint.node.resourceGroups[0].name.empty());
398
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
399
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.empty());
400
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].uriTemplate == "/posts");
401
+
402
+ REQUIRE(blueprint.node.resourceGroups[1].name == "Posts");
403
+ REQUIRE(blueprint.node.resourceGroups[1].resources.size() == 1);
404
+ REQUIRE(blueprint.node.resourceGroups[1].resources[0].actions.size() == 2);
405
+ REQUIRE(blueprint.node.resourceGroups[1].resources[0].uriTemplate == "/posts");
406
+
407
+ REQUIRE(blueprint.sourceMap.name.sourceMap.empty());
408
+ REQUIRE(blueprint.sourceMap.description.sourceMap.empty());
409
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 0);
410
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 2);
411
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection.size() == 1);
412
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[1].resources.collection.size() == 1);
413
+ }
414
+
415
+ TEST_CASE("Parsing unexpected blocks", "[blueprint]")
416
+ {
417
+ mdp::ByteBuffer source = \
418
+ "FORMAT: 1A\n"\
419
+ "\n"\
420
+ "# S\n"\
421
+ "\n"\
422
+ "Hello\n"\
423
+ "\n"\
424
+ "+ Response\n"\
425
+ "\n"\
426
+ "Moar text\n"\
427
+ "\n"\
428
+ "# GET /\n";
429
+
430
+ ParseResult<Blueprint> blueprint;
431
+
432
+ SectionParserHelper<Blueprint, BlueprintParser>::parse(source, BlueprintSectionType, blueprint, ExportSourcemapOption, Symbols(), &blueprint);
433
+
434
+ REQUIRE(blueprint.report.error.code == Error::OK);
435
+ REQUIRE(blueprint.report.warnings.size() == 1); // no response
436
+ REQUIRE(blueprint.report.warnings[0].code == EmptyDefinitionWarning);
437
+
438
+ REQUIRE(blueprint.node.name == "S");
439
+ REQUIRE(blueprint.node.description == "Hello\n\n+ Response\n\nMoar text\n\n");
440
+
441
+ REQUIRE(blueprint.node.metadata.size() == 1);
442
+ REQUIRE(blueprint.node.metadata[0].first == "FORMAT");
443
+ REQUIRE(blueprint.node.metadata[0].second == "1A");
444
+
445
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
446
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
447
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
448
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].uriTemplate == "/");
449
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].method == "GET");
450
+
451
+ REQUIRE(blueprint.sourceMap.name.sourceMap.size() == 1);
452
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].location == 12);
453
+ REQUIRE(blueprint.sourceMap.name.sourceMap[0].length == 5);
454
+ REQUIRE(blueprint.sourceMap.description.sourceMap.size() == 1);
455
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].location == 17);
456
+ REQUIRE(blueprint.sourceMap.description.sourceMap[0].length == 30);
457
+ REQUIRE(blueprint.sourceMap.metadata.collection.size() == 1);
458
+ REQUIRE(blueprint.sourceMap.metadata.collection[0].sourceMap.size() == 1);
459
+ REQUIRE(blueprint.sourceMap.metadata.collection[0].sourceMap[0].location == 0);
460
+ REQUIRE(blueprint.sourceMap.metadata.collection[0].sourceMap[0].length == 12);
461
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 1);
462
+ }