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,664 @@
1
+ //
2
+ // test-snowcrash.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 4/2/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #define CATCH_CONFIG_MAIN
10
+ #include "snowcrashtest.h"
11
+ #include "snowcrash.h"
12
+
13
+ using namespace snowcrash;
14
+ using namespace snowcrashtest;
15
+
16
+ TEST_CASE("Parse empty blueprint", "[parser]")
17
+ {
18
+ mdp::ByteBuffer source = "";
19
+
20
+ ParseResult<Blueprint> blueprint;
21
+ parse(source, 0, blueprint);
22
+
23
+ REQUIRE(blueprint.report.error.code == Error::OK);
24
+ REQUIRE(blueprint.report.warnings.empty());
25
+
26
+ REQUIRE(blueprint.node.metadata.empty());
27
+ REQUIRE(blueprint.node.name.empty());
28
+ REQUIRE(blueprint.node.description.empty());
29
+ REQUIRE(blueprint.node.resourceGroups.empty());
30
+ }
31
+
32
+ TEST_CASE("Parse simple blueprint", "[parser]")
33
+ {
34
+ mdp::ByteBuffer source = \
35
+ "# Snowcrash API \n\n"\
36
+ "# GET /resource\n"\
37
+ "Resource **description**\n\n"\
38
+ "+ Response 200\n"\
39
+ " + Body\n\n"\
40
+ " Text\n\n"\
41
+ " { ... }\n";
42
+
43
+ ParseResult<Blueprint> blueprint;
44
+ parse(source, 0, blueprint);
45
+
46
+ REQUIRE(blueprint.report.error.code == Error::OK);
47
+ REQUIRE(blueprint.report.warnings.empty());
48
+
49
+ REQUIRE(blueprint.node.name == "Snowcrash API");
50
+ REQUIRE(blueprint.node.description.empty());
51
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
52
+
53
+ ResourceGroup& resourceGroup = blueprint.node.resourceGroups.front();
54
+ REQUIRE(resourceGroup.name.empty());
55
+ REQUIRE(resourceGroup.description.empty());
56
+ REQUIRE(resourceGroup.resources.size() == 1);
57
+
58
+ Resource& resource = resourceGroup.resources.front();
59
+ REQUIRE(resource.uriTemplate == "/resource");
60
+ REQUIRE(resource.actions.size() == 1);
61
+
62
+ Action& action = resource.actions[0];
63
+ REQUIRE(action.method == "GET");
64
+ REQUIRE(action.description == "Resource **description**\n\n");
65
+ REQUIRE(action.examples.size() == 1);
66
+ REQUIRE(action.examples.front().requests.empty());
67
+ REQUIRE(action.examples.front().responses.size() == 1);
68
+
69
+ Response& response = action.examples.front().responses[0];
70
+ REQUIRE(response.name == "200");
71
+ REQUIRE(response.body == "Text\n\n{ ... }\n");
72
+ }
73
+
74
+ TEST_CASE("Parse blueprint with unsupported characters", "[parser]")
75
+ {
76
+ ParseResult<Blueprint> blueprint1;
77
+ parse("hello\t", 0, blueprint1);
78
+
79
+ REQUIRE(blueprint1.report.error.code != Error::OK);
80
+ REQUIRE(blueprint1.report.error.location.size() == 1);
81
+ REQUIRE(blueprint1.report.error.location[0].location == 5);
82
+ REQUIRE(blueprint1.report.error.location[0].length == 1);
83
+
84
+ ParseResult<Blueprint> blueprint2;
85
+ parse("sun\n\rsalt\n\r", 0, blueprint2);
86
+
87
+ REQUIRE(blueprint2.report.error.code != Error::OK);
88
+ REQUIRE(blueprint2.report.error.location.size() == 1);
89
+ REQUIRE(blueprint2.report.error.location[0].location == 4);
90
+ REQUIRE(blueprint2.report.error.location[0].length == 1);
91
+ }
92
+
93
+ TEST_CASE("Do not report duplicate response when media type differs", "[method][#14]")
94
+ {
95
+ mdp::ByteBuffer source = \
96
+ "# GET /message\n"\
97
+ "+ Response 200 (application/json)\n\n"\
98
+ " { \"msg\": \"Hello.\" }\n\n"\
99
+ "+ Response 200 (text/plain)\n\n"\
100
+ " Hello.\n";
101
+
102
+ ParseResult<Blueprint> blueprint;
103
+
104
+ parse(source, 0, blueprint);
105
+
106
+ REQUIRE(blueprint.report.error.code == Error::OK);
107
+ REQUIRE(blueprint.report.warnings.empty());
108
+ }
109
+
110
+ TEST_CASE("Support description ending with an list item", "[parser][#8]")
111
+ {
112
+ mdp::ByteBuffer source = \
113
+ "# GET /1\n"\
114
+ "+ a description item\n"\
115
+ "+ Response 200\n\n"\
116
+ " ...\n";
117
+
118
+ ParseResult<Blueprint> blueprint;
119
+ parse(source, 0, blueprint);
120
+
121
+ REQUIRE(blueprint.report.error.code == Error::OK);
122
+ REQUIRE(blueprint.report.warnings.empty());
123
+
124
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
125
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
126
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
127
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].description == "+ a description item\n");
128
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples.size() == 1);
129
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses.size() == 1);
130
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].name == "200");
131
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].body == "...\n");
132
+ }
133
+
134
+ TEST_CASE("Invalid ‘warning: empty body asset’ for certain status codes", "[parser][#13]")
135
+ {
136
+ mdp::ByteBuffer source = \
137
+ "# GET /1\n"\
138
+ "+ Response 304\n";
139
+
140
+ ParseResult<Blueprint> blueprint;
141
+ parse(source, 0, blueprint);
142
+
143
+ REQUIRE(blueprint.report.error.code == Error::OK);
144
+ REQUIRE(blueprint.report.warnings.empty());
145
+
146
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
147
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
148
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
149
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].description.empty());
150
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples.size() == 1);
151
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses.size() == 1);
152
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].name == "304");
153
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].body.empty());
154
+ }
155
+
156
+ TEST_CASE("SIGTERM parsing blueprint", "[parser][#45]")
157
+ {
158
+ mdp::ByteBuffer source = \
159
+ "# A\n"\
160
+ "# B\n"\
161
+ "C\n\n"\
162
+ "D\n\n"\
163
+ "E\n\n"\
164
+ "F\n\n"\
165
+ "G\n\n"\
166
+ "# /1\n"\
167
+ "# GET\n"\
168
+ "+ Request\n"\
169
+ "+ Response 200\n"\
170
+ " + Body\n\n"\
171
+ " H\n\n"\
172
+ "I\n"\
173
+ "# J\n"\
174
+ "> K";
175
+
176
+ ParseResult<Blueprint> blueprint;
177
+ parse(source, 0, blueprint);
178
+
179
+ REQUIRE(blueprint.report.error.code == Error::OK);
180
+ REQUIRE(blueprint.report.warnings.size() == 4);
181
+ }
182
+
183
+ TEST_CASE("Parse adjacent asset blocks", "[parser][#9]")
184
+ {
185
+ mdp::ByteBuffer source = \
186
+ "# GET /1\n"\
187
+ "+ response 200\n"\
188
+ "\n"\
189
+ "asset\n"\
190
+ "\n"\
191
+ " pre\n"\
192
+ "+ response 404\n"\
193
+ "\n"\
194
+ " Not found\n";
195
+
196
+ ParseResult<Blueprint> blueprint;
197
+ parse(source, 0, blueprint);
198
+
199
+ REQUIRE(blueprint.report.error.code == Error::OK);
200
+ REQUIRE(blueprint.report.warnings.size() == 2);
201
+
202
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
203
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
204
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
205
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].description.empty());
206
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples.size() == 1);
207
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses.size() == 2);
208
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].name == "200");
209
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].body == "asset\n\npre\n\n");
210
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[1].name == "404");
211
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[1].body == "Not found\n");
212
+ }
213
+
214
+ TEST_CASE("Parse adjacent asset list blocks", "[parser][#9]")
215
+ {
216
+ mdp::ByteBuffer source = \
217
+ "# GET /1\n"\
218
+ "+ response 200\n"\
219
+ "+ list\n";
220
+
221
+ ParseResult<Blueprint> blueprint;
222
+ parse(source, 0, blueprint);
223
+
224
+ REQUIRE(blueprint.report.error.code == Error::OK);
225
+ REQUIRE(blueprint.report.warnings.size() == 1);
226
+ REQUIRE(blueprint.report.warnings[0].code == IgnoringWarning);
227
+
228
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
229
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
230
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
231
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].description.empty());
232
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses.size() == 1);
233
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].name == "200");
234
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].body.empty());
235
+ }
236
+
237
+ TEST_CASE("Parse adjacent nested asset blocks", "[parser][#9]")
238
+ {
239
+ mdp::ByteBuffer source = \
240
+ "# GET /1\n"\
241
+ "+ response 200\n"\
242
+ " + body\n"\
243
+ "\n"\
244
+ " A\n"\
245
+ "\n"\
246
+ " B\n"\
247
+ "C\n";
248
+
249
+ ParseResult<Blueprint> blueprint;
250
+ parse(source, 0, blueprint);
251
+
252
+ REQUIRE(blueprint.report.error.code == Error::OK);
253
+ REQUIRE(blueprint.report.warnings.size() == 2);
254
+ REQUIRE(blueprint.report.warnings[0].code == IndentationWarning);
255
+ REQUIRE(blueprint.report.warnings[1].code == IndentationWarning);
256
+
257
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
258
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
259
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
260
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].description.empty());
261
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses.size() == 1);
262
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].name == "200");
263
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].body == "A\nB\nC\n\n");
264
+ }
265
+
266
+ TEST_CASE("Exception while parsing a blueprint with leading empty space", "[regression][parser]")
267
+ {
268
+ mdp::ByteBuffer source = \
269
+ "\n"\
270
+ "# PUT /branch\n";
271
+
272
+ ParseResult<Blueprint> blueprint;
273
+
274
+ REQUIRE_NOTHROW(parse(source, 0, blueprint));
275
+ REQUIRE(blueprint.report.error.code == Error::OK);
276
+ REQUIRE(blueprint.report.warnings.size() == 1);
277
+ REQUIRE(blueprint.report.warnings[0].code == EmptyDefinitionWarning);
278
+ }
279
+
280
+ TEST_CASE("Invalid source map without closing newline", "[regression][parser]")
281
+ {
282
+ mdp::ByteBuffer source = \
283
+ "# PUT /branch";
284
+
285
+ ParseResult<Blueprint> blueprint;
286
+
287
+ REQUIRE_NOTHROW(parse(source, 0, blueprint));
288
+ REQUIRE(blueprint.report.error.code == Error::OK);
289
+ REQUIRE(blueprint.report.warnings.size() == 1);
290
+ REQUIRE(blueprint.report.warnings[0].code == EmptyDefinitionWarning);
291
+ REQUIRE(blueprint.report.warnings[0].location.size() == 1);
292
+ REQUIRE(blueprint.report.warnings[0].location[0].location == 0);
293
+ REQUIRE(blueprint.report.warnings[0].location[0].length == 13);
294
+ }
295
+
296
+ TEST_CASE("Warn about missing API name if there is an API description", "[parser][regression]")
297
+ {
298
+ mdp::ByteBuffer source1 = \
299
+ "Hello World\n";
300
+
301
+ ParseResult<Blueprint> blueprint1;
302
+ parse(source1, 0, blueprint1);
303
+
304
+ REQUIRE(blueprint1.report.error.code == Error::OK);
305
+ REQUIRE(blueprint1.report.warnings.size() == 1);
306
+ REQUIRE(blueprint1.report.warnings[0].code == APINameWarning);
307
+
308
+ REQUIRE(blueprint1.node.name.empty());
309
+ REQUIRE(blueprint1.node.description == "Hello World\n");
310
+ REQUIRE(blueprint1.node.resourceGroups.empty());
311
+
312
+ mdp::ByteBuffer source2 = \
313
+ "# API\n"\
314
+ "Hello World\n";
315
+
316
+ ParseResult<Blueprint> blueprint2;
317
+ parse(source2, 0, blueprint2);
318
+
319
+ REQUIRE(blueprint2.report.error.code == Error::OK);
320
+ REQUIRE(blueprint2.report.warnings.empty());
321
+
322
+ REQUIRE(blueprint2.node.name == "API");
323
+ REQUIRE(blueprint2.node.description == "Hello World\n");
324
+ REQUIRE(blueprint2.node.resourceGroups.empty());
325
+
326
+ mdp::ByteBuffer source3 = \
327
+ "# POST /1\n"\
328
+ "+ Response 201";
329
+
330
+ ParseResult<Blueprint> blueprint3;
331
+ parse(source3, 0, blueprint3);
332
+
333
+ REQUIRE(blueprint3.report.error.code == Error::OK);
334
+ REQUIRE(blueprint3.report.warnings.empty());
335
+ }
336
+
337
+ TEST_CASE("Resource with incorrect URI segfault", "[parser][regression]")
338
+ {
339
+ mdp::ByteBuffer source = \
340
+ "# Group A\n"\
341
+ "## Resource [wronguri]\n"\
342
+ "### Retrieve [GET]\n"\
343
+ "+ Response 200\n"\
344
+ "\n";
345
+
346
+ ParseResult<Blueprint> blueprint;
347
+ parse(source, 0, blueprint);
348
+
349
+ REQUIRE(blueprint.report.error.code == Error::OK);
350
+ REQUIRE(blueprint.report.warnings.empty());
351
+
352
+ REQUIRE(blueprint.node.name.empty());
353
+ REQUIRE(blueprint.node.description.empty());
354
+
355
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
356
+ REQUIRE(blueprint.node.resourceGroups[0].name == "A");
357
+ REQUIRE(blueprint.node.resourceGroups[0].description == "## Resource [wronguri]\n\n### Retrieve [GET]\n\n+ Response 200\n\n");
358
+ }
359
+
360
+ TEST_CASE("Dangling block not recognized", "[parser][regression][#186]")
361
+ {
362
+ mdp::ByteBuffer source = \
363
+ "# A [/a]\n"\
364
+ "+ Model\n"\
365
+ "\n"\
366
+ "```js\n"\
367
+ " { ... }\n"\
368
+ "```\n";
369
+
370
+ ParseResult<Blueprint> blueprint;
371
+ parse(source, 0, blueprint);
372
+
373
+ REQUIRE(blueprint.report.error.code == Error::OK);
374
+ REQUIRE(blueprint.report.warnings.size() == 1);
375
+ REQUIRE(blueprint.report.warnings[0].code == IndentationWarning);
376
+
377
+ REQUIRE(blueprint.node.name.empty());
378
+ REQUIRE(blueprint.node.description.empty());
379
+
380
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
381
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
382
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].name == "A");
383
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].uriTemplate == "/a");
384
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].model.body == " { ... }\n\n");
385
+ }
386
+
387
+ TEST_CASE("Ignoring block recovery", "[parser][regression][#188]")
388
+ {
389
+ mdp::ByteBuffer source = \
390
+ "## Note [/notes/{id}]\n"\
391
+ "\n"\
392
+ "+ Parameters\n"\
393
+ " + id\n"\
394
+ "\n"\
395
+ "+ Response 200\n"\
396
+ "\n"\
397
+ "### Remove a Note [DELETE]\n";
398
+
399
+ ParseResult<Blueprint> blueprint;
400
+ parse(source, 0, blueprint);
401
+
402
+ REQUIRE(blueprint.report.error.code == Error::OK);
403
+ REQUIRE(blueprint.report.warnings.size() == 2);
404
+ REQUIRE(blueprint.report.warnings[0].code == IgnoringWarning);
405
+ REQUIRE(blueprint.report.warnings[1].code == EmptyDefinitionWarning);
406
+
407
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
408
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
409
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].name == "Note");
410
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
411
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].name == "Remove a Note");
412
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].method == "DELETE");
413
+ }
414
+
415
+ TEST_CASE("Ignoring dangling model assets", "[parser][regression][#196]")
416
+ {
417
+ mdp::ByteBuffer source = \
418
+ "# A [/A]\n"\
419
+ "+ model (Y)\n"\
420
+ "\n"\
421
+ "{ A }\n"\
422
+ "\n"\
423
+ "## POST /B\n"\
424
+ "+ Response 200\n"\
425
+ "\n"\
426
+ " [A][]\n";
427
+
428
+ ParseResult<Blueprint> blueprint;
429
+ parse(source, 0, blueprint);
430
+
431
+ REQUIRE(blueprint.report.error.code == Error::OK);
432
+ REQUIRE(blueprint.report.warnings.size() == 1);
433
+ REQUIRE(blueprint.report.warnings[0].code == IndentationWarning);
434
+
435
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
436
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 2);
437
+ REQUIRE(blueprint.node.resourceGroups[0].resources[1].name.empty());
438
+ REQUIRE(blueprint.node.resourceGroups[0].resources[1].uriTemplate == "/B");
439
+ REQUIRE(blueprint.node.resourceGroups[0].resources[1].actions.size() == 1);
440
+ REQUIRE(blueprint.node.resourceGroups[0].resources[1].actions[0].method == "POST");
441
+ REQUIRE(blueprint.node.resourceGroups[0].resources[1].actions[0].examples.size() == 1);
442
+ REQUIRE(blueprint.node.resourceGroups[0].resources[1].actions[0].examples[0].responses.size() == 1);
443
+ REQUIRE(blueprint.node.resourceGroups[0].resources[1].actions[0].examples[0].responses[0].name == "200");
444
+ REQUIRE(blueprint.node.resourceGroups[0].resources[1].actions[0].examples[0].responses[0].body == "{ A }\n\n");
445
+ }
446
+
447
+ TEST_CASE("Ignoring local media type", "[parser][regression][#195]")
448
+ {
449
+ mdp::ByteBuffer source = \
450
+ "# A [/A]\n"\
451
+ "+ model (Y)\n"\
452
+ "\n"\
453
+ " { A }\n"\
454
+ "\n"\
455
+ "## Retrieve [GET]\n"\
456
+ "+ Response 200 (X)\n"\
457
+ "\n"\
458
+ " [A][]\n";
459
+
460
+ ParseResult<Blueprint> blueprint;
461
+ parse(source, ExportSourcemapOption, blueprint);
462
+
463
+ REQUIRE(blueprint.report.error.code == Error::OK);
464
+ REQUIRE(blueprint.report.warnings.size() == 1);
465
+ REQUIRE(blueprint.report.warnings[0].code == IgnoringWarning);
466
+
467
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
468
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
469
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
470
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples.size() == 1);
471
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses.size() == 1);
472
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].name == "200");
473
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].headers.size() == 1);
474
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].headers[0].first == "Content-Type");
475
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].headers[0].second == "Y");
476
+
477
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 1);
478
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection.size() == 1);
479
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection.size() == 1);
480
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection.size() == 1);
481
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection.size() == 1);
482
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection[0].headers.collection.size() == 1);
483
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection[0].headers.collection[0].sourceMap.size() == 1);
484
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection[0].headers.collection[0].sourceMap[0].location == 11);
485
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection[0].headers.collection[0].sourceMap[0].length == 11);
486
+ }
487
+
488
+ TEST_CASE("Using local media type", "[parser][regression][#195]")
489
+ {
490
+ mdp::ByteBuffer source = \
491
+ "# A [/A]\n"\
492
+ "+ model\n"\
493
+ "\n"\
494
+ " { A }\n"\
495
+ "\n"\
496
+ "## Retrieve [GET]\n"\
497
+ "+ Response 200 (X)\n"\
498
+ "\n"\
499
+ " [A][]\n";
500
+
501
+ ParseResult<Blueprint> blueprint;
502
+ parse(source, ExportSourcemapOption, blueprint);
503
+
504
+ REQUIRE(blueprint.report.error.code == Error::OK);
505
+ REQUIRE(blueprint.report.warnings.empty());
506
+
507
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
508
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
509
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
510
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples.size() == 1);
511
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses.size() == 1);
512
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].name == "200");
513
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].headers.size() == 1);
514
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].headers[0].first == "Content-Type");
515
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].headers[0].second == "X");
516
+
517
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 1);
518
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection.size() == 1);
519
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection.size() == 1);
520
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection.size() == 1);
521
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection.size() == 1);
522
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection[0].headers.collection.size() == 1);
523
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection[0].headers.collection[0].sourceMap.size() == 1);
524
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection[0].headers.collection[0].sourceMap[0].location == 53);
525
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].examples.collection[0].responses.collection[0].headers.collection[0].sourceMap[0].length == 18);
526
+ }
527
+
528
+ TEST_CASE("Parse ill-formated header", "[parser][#198][regression]")
529
+ {
530
+ mdp::ByteBuffer source = \
531
+ "# GET /A\n"\
532
+ "+ Response 200\n"\
533
+ " + Header\n"\
534
+ " Location: new_url\n";
535
+
536
+ ParseResult<Blueprint> blueprint;
537
+ parse(source, 0, blueprint);
538
+
539
+ REQUIRE(blueprint.report.error.code == Error::OK);
540
+ REQUIRE(blueprint.report.warnings.size() == 1);
541
+ REQUIRE(blueprint.report.warnings[0].code == IndentationWarning);
542
+
543
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
544
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
545
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
546
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples.size() == 1);
547
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses.size() == 1);
548
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].name == "200");
549
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].headers.size() == 1);
550
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].headers[0].first == "Location");
551
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].examples[0].responses[0].headers[0].second == "new_url");
552
+ }
553
+
554
+ TEST_CASE("Overshadow parameters", "[parser][#201][regression][parameters]")
555
+ {
556
+ mdp::ByteBuffer source = \
557
+ "# /{a,b,c}\n"\
558
+ "\n"\
559
+ "## GET\n"\
560
+ "+ parameters\n"\
561
+ " + a ... 1\n"\
562
+ " + b ... 2\n"\
563
+ " + c ... 3\n"\
564
+ "\n"\
565
+ "+ parameters\n"\
566
+ " + a ... 4\n"\
567
+ "\n"\
568
+ "+ response 200\n";
569
+
570
+ ParseResult<Blueprint> blueprint;
571
+ parse(source, 0, blueprint);
572
+
573
+ REQUIRE(blueprint.report.error.code == Error::OK);
574
+ REQUIRE(blueprint.report.warnings.size() == 1);
575
+ REQUIRE(blueprint.report.warnings[0].code == RedefinitionWarning);
576
+
577
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
578
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
579
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
580
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters.size() == 4);
581
+
582
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[0].name == "a");
583
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[0].description == "1");
584
+
585
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[1].name == "b");
586
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[1].description == "2");
587
+
588
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[2].name == "c");
589
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[2].description == "3");
590
+
591
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[3].name == "a");
592
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[3].description == "4");
593
+ }
594
+
595
+ TEST_CASE("Segfault parsing metadata only", "[parser][#205][regression]")
596
+ {
597
+ mdp::ByteBuffer source = \
598
+ "FORMAT: 1A : SOJ\n";
599
+
600
+ ParseResult<Blueprint> blueprint;
601
+ parse(source, 0, blueprint);
602
+
603
+ REQUIRE(blueprint.report.error.code == Error::OK);
604
+ REQUIRE(blueprint.report.warnings.empty());
605
+
606
+ REQUIRE(blueprint.node.metadata.size() == 1);
607
+ REQUIRE(blueprint.node.metadata[0].first == "FORMAT");
608
+ REQUIRE(blueprint.node.metadata[0].second == "1A : SOJ");
609
+ REQUIRE(blueprint.node.resourceGroups.empty());
610
+ }
611
+
612
+ TEST_CASE("Don't remove link references", "[parser][#213]")
613
+ {
614
+ mdp::ByteBuffer source = \
615
+ "# API\n\n"\
616
+ "This is [first example][id]\n\n"\
617
+ "[id]: http://a.com\n\n"\
618
+ "# Group A\n\n"\
619
+ "This is [second example][id]\n\n"\
620
+ "[id]: http://b.com\n\n"\
621
+ "## /a\n\n"\
622
+ "This is [third example][id]\n\n"\
623
+ "[id]: http://c.com\n\n";
624
+
625
+ ParseResult<Blueprint> blueprint;
626
+ parse(source, 0, blueprint);
627
+
628
+ REQUIRE(blueprint.report.error.code == Error::OK);
629
+ REQUIRE(blueprint.report.warnings.empty());
630
+
631
+ REQUIRE(blueprint.node.name == "API");
632
+ REQUIRE(blueprint.node.description == "This is [first example][id]\n\n[id]: http://a.com\n\n");
633
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
634
+ REQUIRE(blueprint.node.resourceGroups[0].name == "A");
635
+ REQUIRE(blueprint.node.resourceGroups[0].description == "This is [second example][id]\n\n[id]: http://b.com\n\n");
636
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
637
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].uriTemplate == "/a");
638
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].description == "This is [third example][id]\n\n[id]: http://c.com\n\n");
639
+ }
640
+
641
+ TEST_CASE("Don't mess up sourcemaps when there are references", "[parser][#213]")
642
+ {
643
+ mdp::ByteBuffer source = \
644
+ "# API\n\n"\
645
+ "[very][] [much][] [reference][]\n\n"\
646
+ "[very]: http://a.com\n\n"\
647
+ "[much]: http://b.com\n\n"\
648
+ "[reference]: http://c.com\n\n"\
649
+ "# GET /1";
650
+
651
+ ParseResult<Blueprint> blueprint;
652
+ parse(source, ExportSourcemapOption, blueprint);
653
+
654
+ REQUIRE(blueprint.report.error.code == Error::OK);
655
+ REQUIRE(blueprint.report.warnings.size() == 1);
656
+ REQUIRE(blueprint.report.warnings[0].code == EmptyDefinitionWarning);
657
+
658
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection.size() == 1);
659
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection.size() == 1);
660
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection.size() == 1);
661
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].method.sourceMap.size() == 1);
662
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].method.sourceMap[0].location == 111);
663
+ REQUIRE(blueprint.sourceMap.resourceGroups.collection[0].resources.collection[0].actions.collection[0].method.sourceMap[0].length == 8);
664
+ }