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,355 @@
1
+ //
2
+ // test-ParametersParser.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 9/1/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "snowcrashtest.h"
10
+ #include "ParametersParser.h"
11
+ #include "snowcrash.h"
12
+
13
+ using namespace snowcrash;
14
+ using namespace snowcrashtest;
15
+
16
+ const mdp::ByteBuffer ParametersFixture = \
17
+ "+ Parameters\n"\
18
+ " + id = `1234` (optional, number, `0000`)\n\n"\
19
+ " Lorem ipsum\n"\
20
+ " + Values\n"\
21
+ " + `1234`\n"\
22
+ " + `0000`\n"\
23
+ " + `beef`\n"\
24
+ " + name\n";
25
+
26
+ TEST_CASE("Recognize Parameters section block", "[parameters]")
27
+ {
28
+ mdp::MarkdownParser markdownParser;
29
+ mdp::MarkdownNode markdownAST;
30
+ markdownParser.parse(ParametersFixture, markdownAST);
31
+
32
+ REQUIRE(!markdownAST.children().empty());
33
+ SectionType sectionType = SectionProcessor<Parameters>::sectionType(markdownAST.children().begin());
34
+ REQUIRE(sectionType == ParametersSectionType);
35
+ }
36
+
37
+ TEST_CASE("Parse canonical parameters", "[parameters]")
38
+ {
39
+ ParseResult<Parameters> parameters;
40
+ SectionParserHelper<Parameters, ParametersParser>::parse(ParametersFixture,
41
+ ParametersSectionType,
42
+ parameters,
43
+ ExportSourcemapOption);
44
+
45
+ REQUIRE(parameters.report.error.code == Error::OK);
46
+ REQUIRE(parameters.report.warnings.empty());
47
+
48
+ REQUIRE(parameters.node.size() == 2);
49
+ REQUIRE(parameters.node[0].name == "id");
50
+ REQUIRE(parameters.node[0].description == "Lorem ipsum\n");
51
+ REQUIRE(parameters.node[1].name == "name");
52
+ REQUIRE(parameters.node[1].description.empty());
53
+
54
+ REQUIRE(parameters.sourceMap.collection.size() == 2);
55
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap.size() == 1);
56
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].location == 19);
57
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].length == 40);
58
+ REQUIRE(parameters.sourceMap.collection[1].name.sourceMap.size() == 1);
59
+ REQUIRE(parameters.sourceMap.collection[1].name.sourceMap[0].location == 165);
60
+ REQUIRE(parameters.sourceMap.collection[1].name.sourceMap[0].length == 5);
61
+ }
62
+
63
+ TEST_CASE("Parse ilegal parameter", "[parameters]")
64
+ {
65
+ mdp::ByteBuffer source = \
66
+ "+ Parameters\n"\
67
+ " + i:legal\n\n";
68
+
69
+ ParseResult<Parameters> parameters;
70
+ SectionParserHelper<Parameters, ParametersParser>::parse(source, ParametersSectionType, parameters);
71
+
72
+ REQUIRE(parameters.report.error.code == Error::OK);
73
+ REQUIRE(parameters.report.warnings.size() == 2);
74
+ REQUIRE(parameters.report.warnings[0].code == IgnoringWarning);
75
+ REQUIRE(parameters.report.warnings[1].code == FormattingWarning);
76
+
77
+ REQUIRE(parameters.node.empty());
78
+ REQUIRE(parameters.sourceMap.collection.empty());
79
+ }
80
+
81
+ TEST_CASE("Parse illegal parameter among legal ones", "[parameters]")
82
+ {
83
+ mdp::ByteBuffer source = \
84
+ "+ Parameters\n"\
85
+ " + OK_1\n"\
86
+ " + i:legal\n"\
87
+ " + OK-2\n";
88
+
89
+ ParseResult<Parameters> parameters;
90
+ SectionParserHelper<Parameters, ParametersParser>::parse(source,
91
+ ParametersSectionType,
92
+ parameters,
93
+ ExportSourcemapOption);
94
+
95
+ REQUIRE(parameters.report.error.code == Error::OK);
96
+ REQUIRE(parameters.report.warnings.size() == 1);
97
+ REQUIRE(parameters.report.warnings[0].code == IgnoringWarning);
98
+
99
+ REQUIRE(parameters.node.size() == 2);
100
+ REQUIRE(parameters.node[0].name == "OK_1");
101
+ REQUIRE(parameters.node[0].description.empty());
102
+ REQUIRE(parameters.node[1].name == "OK-2");
103
+ REQUIRE(parameters.node[1].description.empty());
104
+
105
+ REQUIRE(parameters.sourceMap.collection.size() == 2);
106
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap.size() == 1);
107
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].location == 19);
108
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].length == 5);
109
+ REQUIRE(parameters.sourceMap.collection[0].description.sourceMap.empty());
110
+ REQUIRE(parameters.sourceMap.collection[1].name.sourceMap.size() == 1);
111
+ REQUIRE(parameters.sourceMap.collection[1].name.sourceMap[0].location == 44);
112
+ REQUIRE(parameters.sourceMap.collection[1].name.sourceMap[0].length == 5);
113
+ REQUIRE(parameters.sourceMap.collection[1].description.sourceMap.empty());
114
+ }
115
+
116
+ TEST_CASE("Warn about additional content in parameters section", "[parameters]")
117
+ {
118
+ mdp::ByteBuffer source = \
119
+ "+ Parameters\n"\
120
+ " extra-1\n\n"\
121
+ " + id\n";
122
+
123
+ ParseResult<Parameters> parameters;
124
+ SectionParserHelper<Parameters, ParametersParser>::parse(source,
125
+ ParametersSectionType,
126
+ parameters,
127
+ ExportSourcemapOption);
128
+
129
+ REQUIRE(parameters.report.error.code == Error::OK);
130
+ REQUIRE(parameters.report.warnings.size() == 1);
131
+ REQUIRE(parameters.report.warnings[0].code == IgnoringWarning);
132
+
133
+ REQUIRE(parameters.node.size() == 1);
134
+ REQUIRE(parameters.node[0].name == "id");
135
+ REQUIRE(parameters.node[0].description.empty());
136
+
137
+ REQUIRE(parameters.sourceMap.collection.size() == 1);
138
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap.size() == 1);
139
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].location == 30);
140
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].length == 3);
141
+ REQUIRE(parameters.sourceMap.collection[0].description.sourceMap.empty());
142
+ }
143
+
144
+ TEST_CASE("Warn about additional content block in parameters section", "[parameters]")
145
+ {
146
+ mdp::ByteBuffer source = \
147
+ "+ Parameters\n\n"\
148
+ " extra-1\n\n"\
149
+ " + id\n";
150
+
151
+ ParseResult<Parameters> parameters;
152
+ SectionParserHelper<Parameters, ParametersParser>::parse(source,
153
+ ParametersSectionType,
154
+ parameters,
155
+ ExportSourcemapOption);
156
+
157
+ REQUIRE(parameters.report.error.code == Error::OK);
158
+ REQUIRE(parameters.report.warnings.size() == 1);
159
+ REQUIRE(parameters.report.warnings[0].code == IgnoringWarning);
160
+
161
+ REQUIRE(parameters.node.size() == 1);
162
+ REQUIRE(parameters.node[0].name == "id");
163
+ REQUIRE(parameters.node[0].description.empty());
164
+
165
+ REQUIRE(parameters.sourceMap.collection.size() == 1);
166
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap.size() == 1);
167
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].location == 31);
168
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].length == 3);
169
+ REQUIRE(parameters.sourceMap.collection[0].description.sourceMap.empty());
170
+ }
171
+
172
+ TEST_CASE("Warn about multiple parameters with the same name", "[parameters]")
173
+ {
174
+ mdp::ByteBuffer source = \
175
+ "+ Parameters\n"\
176
+ " + id (`42`)\n"\
177
+ " + id (`43`)\n";
178
+
179
+ ParseResult<Parameters> parameters;
180
+ SectionParserHelper<Parameters, ParametersParser>::parse(source,
181
+ ParametersSectionType,
182
+ parameters,
183
+ ExportSourcemapOption);
184
+
185
+ REQUIRE(parameters.report.error.code == Error::OK);
186
+ REQUIRE(parameters.report.warnings.size() == 1);
187
+ REQUIRE(parameters.report.warnings[0].code == RedefinitionWarning);
188
+
189
+ REQUIRE(parameters.node.size() == 2);
190
+
191
+ REQUIRE(parameters.node[0].name == "id");
192
+ REQUIRE(parameters.node[0].exampleValue == "42");
193
+
194
+ REQUIRE(parameters.node[1].name == "id");
195
+ REQUIRE(parameters.node[1].exampleValue == "43");
196
+
197
+ REQUIRE(parameters.sourceMap.collection.size() == 2);
198
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap.size() == 1);
199
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].location == 19);
200
+ REQUIRE(parameters.sourceMap.collection[0].name.sourceMap[0].length == 10);
201
+ REQUIRE(parameters.sourceMap.collection[1].name.sourceMap.size() == 1);
202
+ REQUIRE(parameters.sourceMap.collection[1].name.sourceMap[0].location == 35);
203
+ REQUIRE(parameters.sourceMap.collection[1].name.sourceMap[0].length == 10);
204
+ }
205
+
206
+ TEST_CASE("Recognize parameter when there is no description on its signature and remaining description is not a new node", "[parameters]")
207
+ {
208
+ mdp::ByteBuffer source = \
209
+ "+ Parameters\n\n"\
210
+ " + id (number) ... The ID number of the car\n"\
211
+ " + state (string)\n"\
212
+ " The desired state of the panoramic roof. The approximate percent open values for each state are `open` = 100%, `close` = 0%, `comfort` = 80%, and `vent` = ~15%\n"\
213
+ " + Values\n"\
214
+ " + `open`\n"\
215
+ " + `close`\n"\
216
+ " + `comfort`\n"\
217
+ " + `vent`";
218
+
219
+ ParseResult<Parameters> parameters;
220
+ SectionParserHelper<Parameters, ParametersParser>::parse(source,
221
+ ParametersSectionType,
222
+ parameters,
223
+ ExportSourcemapOption);
224
+
225
+ REQUIRE(parameters.report.error.code == Error::OK);
226
+ REQUIRE(parameters.report.warnings.empty());
227
+
228
+ REQUIRE(parameters.node.size() == 2);
229
+ REQUIRE(parameters.node[0].name == "id");
230
+ REQUIRE(parameters.node[0].type == "number");
231
+ REQUIRE(parameters.node[0].description == "The ID number of the car");
232
+
233
+ Parameter parameter = parameters.node[1];
234
+ REQUIRE(parameter.name == "state");
235
+ REQUIRE(parameter.type == "string");
236
+ REQUIRE(parameter.description == "\nThe desired state of the panoramic roof. The approximate percent open values for each state are `open` = 100%, `close` = 0%, `comfort` = 80%, and `vent` = ~15%\n\n");
237
+ REQUIRE(parameter.values.size() == 4);
238
+ REQUIRE(parameter.values[0] == "open");
239
+ REQUIRE(parameter.values[1] == "close");
240
+ REQUIRE(parameter.values[2] == "comfort");
241
+ REQUIRE(parameter.values[3] == "vent");
242
+
243
+ REQUIRE(parameters.sourceMap.collection.size() == 2);
244
+ }
245
+
246
+ TEST_CASE("Parentheses in parameter example ", "[parameters][issue][#109]")
247
+ {
248
+ // Blueprint in question:
249
+ //R"(
250
+ //# GET /{id}
251
+ //+ Parameters
252
+ // + id (optional, oData, `substringof('homer', id)`) ... test
253
+ //
254
+ //+ response 204
255
+ //");
256
+ mdp::ByteBuffer source = \
257
+ "+ Parameters\n"\
258
+ " + id (optional, oData, `substringof('homer', id)`) ... test\n"\
259
+ "\n";
260
+
261
+ ParseResult<Parameters> parameters;
262
+ SectionParserHelper<Parameters, ParametersParser>::parse(source, ParametersSectionType, parameters);
263
+
264
+ REQUIRE(parameters.report.error.code == Error::OK);
265
+ REQUIRE(parameters.report.warnings.empty());
266
+
267
+ REQUIRE(parameters.node.size() == 1);
268
+ REQUIRE(parameters.node[0].name == "id");
269
+ REQUIRE(parameters.node[0].type == "oData");
270
+ REQUIRE(parameters.node[0].exampleValue == "substringof('homer', id)");
271
+ REQUIRE(parameters.node[0].description == "test");
272
+ }
273
+
274
+ TEST_CASE("Percentage encoded characters in parameter name ", "[parameters][percentageencoding][issue][#107]")
275
+ {
276
+ // Blueprint in question:
277
+ //R"(
278
+ //# GET /{id%5b%5d}
279
+ //+ Parameters
280
+ // + id%5b%5d (optional, oData, `substringof('homer', id)`) ... test
281
+ //
282
+ //+ response 204
283
+ //");
284
+ mdp::ByteBuffer source = \
285
+ "# GET /{id%5b%5d}\n"\
286
+ "+ Parameters\n"\
287
+ " + id%5b%5d (optional, oData, `substringof('homer', id)`) ... test\n"\
288
+ "\n"\
289
+ "+ response 204\n";
290
+
291
+ ParseResult<Blueprint> blueprint;
292
+ parse(source, 0, blueprint);
293
+
294
+
295
+ REQUIRE(blueprint.report.error.code == Error::OK);
296
+ REQUIRE(blueprint.report.warnings.empty());
297
+
298
+ REQUIRE(blueprint.node.resourceGroups.size() == 1);
299
+ REQUIRE(blueprint.node.resourceGroups[0].resources.size() == 1);
300
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions.size() == 1);
301
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].description.empty());
302
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters.size() == 1);
303
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[0].name == "id%5b%5d");
304
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[0].type == "oData");
305
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[0].exampleValue == "substringof('homer', id)");
306
+ REQUIRE(blueprint.node.resourceGroups[0].resources[0].actions[0].parameters[0].description == "test");
307
+ }
308
+
309
+ TEST_CASE("Invalid percentage encoded characters in parameter name ", "[invalid][parameters][percentageencoding][issue][#107]")
310
+ {
311
+ // Blueprint in question:
312
+ //R"(
313
+ //# GET /{id%5z}
314
+ //+ Parameters
315
+ // + id%5z (optional, oData, `substringof('homer', id)`) ... test
316
+ //
317
+ //+ response 204
318
+ //");
319
+ mdp::ByteBuffer source = \
320
+ "# GET /{id%5z}\n"\
321
+ "+ Parameters\n"\
322
+ " + id%5z (optional, oData, `substringof('homer', id)`) ... test\n"\
323
+ "\n"\
324
+ "+ response 204\n";
325
+
326
+ ParseResult<Blueprint> blueprint;
327
+ parse(source, 0, blueprint);
328
+
329
+ REQUIRE(blueprint.report.error.code == Error::OK);
330
+ REQUIRE(blueprint.report.warnings.size() == 3);
331
+ }
332
+
333
+ TEST_CASE("Incomplete percentage encoded characters in parameter name ", "[incomplete][parameters][percentageencoding][issue][#107]")
334
+ {
335
+ // Blueprint in question:
336
+ //R"(
337
+ //# GET /{id%}
338
+ //+ Parameters
339
+ // + id% (optional, oData, `substringof('homer', id)`) ... test
340
+ //
341
+ //+ response 204
342
+ //");
343
+ mdp::ByteBuffer source = \
344
+ "# GET /{id%}\n"\
345
+ "+ Parameters\n"\
346
+ " + id% (optional, oData, `substringof('homer', id)`) ... test\n"\
347
+ "\n"\
348
+ "+ response 204\n";
349
+
350
+ ParseResult<Blueprint> blueprint;
351
+ parse(source, 0, blueprint);
352
+
353
+ REQUIRE(blueprint.report.error.code == Error::OK);
354
+ REQUIRE(blueprint.report.warnings.size() == 3);
355
+ }
@@ -0,0 +1,657 @@
1
+ //
2
+ // test-PayloadParser.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 5/7/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "snowcrashtest.h"
10
+ #include "PayloadParser.h"
11
+
12
+ using namespace snowcrash;
13
+ using namespace snowcrashtest;
14
+
15
+ const mdp::ByteBuffer RequestFixture = \
16
+ "+ Request Hello World (text/plain)\n\n"\
17
+ " Description\n\n"\
18
+ " + Headers\n\n"\
19
+ " X-Header: 42\n\n"\
20
+ " + Body\n\n"\
21
+ " Code\n\n"\
22
+ " + Schema\n\n"\
23
+ " Code 2\n\n";
24
+
25
+ const mdp::ByteBuffer RequestBodyFixture = \
26
+ "+ Request A\n\n"\
27
+ " Hello World!\n";
28
+
29
+ const mdp::ByteBuffer ResponseBodyFixture = \
30
+ "+ Response 200 (text/plain)\n\n"\
31
+ " Hello World!\n";
32
+
33
+ const mdp::ByteBuffer SymbolFixture = \
34
+ "+ Request\n\n"\
35
+ " [Symbol][]\n";
36
+
37
+ const mdp::ByteBuffer EmptyBodyFixture = \
38
+ "+ Response 200\n\n"\
39
+ " + Body\n\n\n\n";
40
+
41
+ TEST_CASE("recognize request signature", "[payload]")
42
+ {
43
+ mdp::MarkdownParser markdownParser;
44
+ mdp::MarkdownNode markdownAST;
45
+ markdownParser.parse(RequestFixture, markdownAST);
46
+
47
+ REQUIRE(!markdownAST.children().empty());
48
+ SectionType sectionType = SectionProcessor<Payload>::sectionType(markdownAST.children().begin());
49
+ REQUIRE(sectionType == RequestSectionType);
50
+ }
51
+
52
+ TEST_CASE("recognize abbreviated request signature", "[payload]")
53
+ {
54
+ mdp::MarkdownParser markdownParser;
55
+ mdp::MarkdownNode markdownAST;
56
+ markdownParser.parse(RequestBodyFixture, markdownAST);
57
+
58
+ REQUIRE(!markdownAST.children().empty());
59
+ SectionType sectionType = SectionProcessor<Payload>::sectionType(markdownAST.children().begin());
60
+ REQUIRE(sectionType == RequestBodySectionType);
61
+ }
62
+
63
+ TEST_CASE("recognize abbreviated response signature", "[payload]")
64
+ {
65
+ mdp::MarkdownParser markdownParser;
66
+ mdp::MarkdownNode markdownAST;
67
+ markdownParser.parse(ResponseBodyFixture, markdownAST);
68
+
69
+ REQUIRE(!markdownAST.children().empty());
70
+ SectionType sectionType = SectionProcessor<Payload>::sectionType(markdownAST.children().begin());
71
+ REQUIRE(sectionType == ResponseBodySectionType);
72
+ }
73
+
74
+ TEST_CASE("recognize empty body response signature as non-abbreviated", "[payload]")
75
+ {
76
+ mdp::MarkdownParser markdownParser;
77
+ mdp::MarkdownNode markdownAST;
78
+ markdownParser.parse(EmptyBodyFixture, markdownAST);
79
+
80
+ REQUIRE(!markdownAST.children().empty());
81
+ SectionType sectionType = SectionProcessor<Payload>::sectionType(markdownAST.children().begin());
82
+ REQUIRE(sectionType == ResponseSectionType);
83
+ }
84
+
85
+ TEST_CASE("Parse request payload", "[payload]")
86
+ {
87
+ ParseResult<Payload> payload;
88
+ SectionParserHelper<Payload, PayloadParser>::parse(RequestFixture, RequestSectionType, payload, ExportSourcemapOption);
89
+
90
+ REQUIRE(payload.report.error.code == Error::OK);
91
+ CHECK(payload.report.warnings.empty());
92
+
93
+ REQUIRE(payload.node.name == "Hello World");
94
+ REQUIRE(payload.node.description == "Description\n");
95
+ REQUIRE(payload.node.parameters.empty());
96
+ REQUIRE(payload.node.headers.size() == 2);
97
+ REQUIRE(payload.node.headers[0].first == "Content-Type");
98
+ REQUIRE(payload.node.headers[0].second == "text/plain");
99
+ REQUIRE(payload.node.headers[1].first == "X-Header");
100
+ REQUIRE(payload.node.headers[1].second == "42");
101
+ REQUIRE(payload.node.body == "Code\n");
102
+ REQUIRE(payload.node.schema == "Code 2\n");
103
+
104
+ REQUIRE(payload.sourceMap.name.sourceMap.size() == 1);
105
+ REQUIRE(payload.sourceMap.name.sourceMap[0].location == 2);
106
+ REQUIRE(payload.sourceMap.name.sourceMap[0].length == 34);
107
+ REQUIRE(payload.sourceMap.description.sourceMap.size() == 1);
108
+ REQUIRE(payload.sourceMap.description.sourceMap[0].location == 38);
109
+ REQUIRE(payload.sourceMap.description.sourceMap[0].length == 12);
110
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
111
+ REQUIRE(payload.sourceMap.headers.collection.size() == 2);
112
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap.size() == 1);
113
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap[0].location == 2);
114
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap[0].length == 34);
115
+ REQUIRE(payload.sourceMap.headers.collection[1].sourceMap.size() == 1);
116
+ REQUIRE(payload.sourceMap.headers.collection[1].sourceMap[0].location == 74);
117
+ REQUIRE(payload.sourceMap.headers.collection[1].sourceMap[0].length == 17);
118
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
119
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 112);
120
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 9);
121
+ REQUIRE(payload.sourceMap.schema.sourceMap.size() == 1);
122
+ REQUIRE(payload.sourceMap.schema.sourceMap[0].location == 144);
123
+ REQUIRE(payload.sourceMap.schema.sourceMap[0].length == 11);
124
+ }
125
+
126
+ TEST_CASE("Parse abbreviated payload body", "[payload]")
127
+ {
128
+ ParseResult<Payload> payload;
129
+ SectionParserHelper<Payload, PayloadParser>::parse(ResponseBodyFixture, ResponseBodySectionType, payload, ExportSourcemapOption);
130
+
131
+ REQUIRE(payload.report.error.code == Error::OK);
132
+ CHECK(payload.report.warnings.empty());
133
+
134
+ REQUIRE(payload.node.name == "200");
135
+ REQUIRE(payload.node.description.empty());
136
+ REQUIRE(payload.node.parameters.empty());
137
+ REQUIRE(payload.node.headers.size() == 1);
138
+ REQUIRE(payload.node.body == "Hello World!\n");
139
+ REQUIRE(payload.node.schema.empty());
140
+
141
+ REQUIRE(payload.sourceMap.name.sourceMap.size() == 1);
142
+ REQUIRE(payload.sourceMap.name.sourceMap[0].location == 2);
143
+ REQUIRE(payload.sourceMap.name.sourceMap[0].length == 27);
144
+ REQUIRE(payload.sourceMap.description.sourceMap.empty());
145
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
146
+ REQUIRE(payload.sourceMap.headers.collection.size() == 1);
147
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap.size() == 1);
148
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap[0].location == 2);
149
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap[0].length == 27);
150
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
151
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 33);
152
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 17);
153
+ }
154
+
155
+ TEST_CASE("Parse abbreviated inline payload body", "[payload]")
156
+ {
157
+ mdp::ByteBuffer source = RequestBodyFixture;
158
+ source += " B\n";
159
+
160
+ ParseResult<Payload> payload;
161
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestBodySectionType, payload, ExportSourcemapOption);
162
+
163
+ REQUIRE(payload.report.error.code == Error::OK);
164
+ CHECK(payload.report.warnings.size() == 1); // preformatted code block
165
+
166
+ REQUIRE(payload.node.name == "A");
167
+ REQUIRE(payload.node.description.empty());
168
+ REQUIRE(payload.node.parameters.empty());
169
+ REQUIRE(payload.node.headers.empty());
170
+ REQUIRE(payload.node.body == "Hello World!\nB\n");
171
+ REQUIRE(payload.node.schema.empty());
172
+
173
+ REQUIRE(payload.sourceMap.name.sourceMap.size() == 1);
174
+ REQUIRE(payload.sourceMap.name.sourceMap[0].location == 2);
175
+ REQUIRE(payload.sourceMap.name.sourceMap[0].length == 11);
176
+ REQUIRE(payload.sourceMap.description.sourceMap.empty());
177
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
178
+ REQUIRE(payload.sourceMap.headers.collection.empty());
179
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 2);
180
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 17);
181
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 17);
182
+ REQUIRE(payload.sourceMap.body.sourceMap[1].location == 36);
183
+ REQUIRE(payload.sourceMap.body.sourceMap[1].length == 2);
184
+ }
185
+
186
+ TEST_CASE("Parse payload description with list", "[payload]")
187
+ {
188
+ // Blueprint in question:
189
+ //R"(
190
+ //+ Request
191
+ //
192
+ // + B
193
+ //
194
+ // + Body
195
+ //
196
+ // {}
197
+ //");
198
+
199
+ mdp::ByteBuffer source = \
200
+ "+ Request\n\n"\
201
+ " + B\n\n"\
202
+ " + Body\n\n"\
203
+ " {}\n";
204
+
205
+ ParseResult<Payload> payload;
206
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestSectionType, payload, ExportSourcemapOption);
207
+
208
+ REQUIRE(payload.report.error.code == Error::OK);
209
+ CHECK(payload.report.warnings.empty());
210
+
211
+ REQUIRE(payload.node.name.empty());
212
+ REQUIRE(payload.node.description == "+ B\n");
213
+ REQUIRE(payload.node.parameters.empty());
214
+ REQUIRE(payload.node.headers.empty());
215
+ REQUIRE(payload.node.body == "{}\n");
216
+ REQUIRE(payload.node.schema.empty());
217
+
218
+ REQUIRE(payload.sourceMap.name.sourceMap.empty());
219
+ REQUIRE(payload.sourceMap.description.sourceMap.size() == 1);
220
+ REQUIRE(payload.sourceMap.description.sourceMap[0].location == 15);
221
+ REQUIRE(payload.sourceMap.description.sourceMap[0].length == 4);
222
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
223
+ REQUIRE(payload.sourceMap.headers.collection.empty());
224
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
225
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 40);
226
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 7);
227
+ }
228
+
229
+ TEST_CASE("Parse payload with foreign list item", "[payload]")
230
+ {
231
+ // Blueprint in question:
232
+ //R"(
233
+ //+ Request
234
+ //
235
+ // + Body
236
+ //
237
+ // {}
238
+ //
239
+ // + Bar
240
+ //");
241
+
242
+ mdp::ByteBuffer source = \
243
+ "+ Request\n\n"\
244
+ " + Body\n\n"\
245
+ " {}\n\n"\
246
+ " + Bar\n";
247
+
248
+ ParseResult<Payload> payload;
249
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestSectionType, payload, ExportSourcemapOption);
250
+
251
+ REQUIRE(payload.report.error.code == Error::OK);
252
+ CHECK(payload.report.warnings.size() == 1); // dangling block
253
+
254
+ REQUIRE(payload.node.name.empty());
255
+ REQUIRE(payload.node.description.empty());
256
+ REQUIRE(payload.node.parameters.empty());
257
+ REQUIRE(payload.node.headers.empty());
258
+ REQUIRE(payload.node.body == "{}\n");
259
+ REQUIRE(payload.node.schema.empty());
260
+
261
+ REQUIRE(payload.sourceMap.name.sourceMap.empty());
262
+ REQUIRE(payload.sourceMap.description.sourceMap.empty());
263
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
264
+ REQUIRE(payload.sourceMap.headers.collection.empty());
265
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
266
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 31);
267
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 7);
268
+ }
269
+
270
+ TEST_CASE("Parse payload with dangling body", "[payload]")
271
+ {
272
+ // Blueprint in question:
273
+ //R"(
274
+ //+ Request
275
+ // + Body
276
+ //
277
+ // Foo
278
+ //
279
+ // Bar
280
+ //");
281
+
282
+ mdp::ByteBuffer source = "+ Request\n";
283
+ source += " + Body\n\n";
284
+ source += " Foo\n\n";
285
+ source += " Bar\n";
286
+
287
+ ParseResult<Payload> payload;
288
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestSectionType, payload, ExportSourcemapOption);
289
+
290
+ REQUIRE(payload.report.error.code == Error::OK);
291
+ REQUIRE(payload.report.warnings.size() == 1); // dangling block
292
+ REQUIRE(payload.report.warnings[0].code == IndentationWarning);
293
+
294
+ REQUIRE(payload.node.name.empty());
295
+ REQUIRE(payload.node.description.empty());
296
+ REQUIRE(payload.node.parameters.empty());
297
+ REQUIRE(payload.node.headers.empty());
298
+ REQUIRE(payload.node.body == "Foo\nBar\n\n");
299
+ REQUIRE(payload.node.schema.empty());
300
+
301
+ REQUIRE(payload.sourceMap.name.sourceMap.empty());
302
+ REQUIRE(payload.sourceMap.description.sourceMap.empty());
303
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
304
+ REQUIRE(payload.sourceMap.headers.collection.empty());
305
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 2);
306
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 30);
307
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 8);
308
+ REQUIRE(payload.sourceMap.body.sourceMap[1].location == 43);
309
+ REQUIRE(payload.sourceMap.body.sourceMap[1].length == 4);
310
+ }
311
+
312
+ TEST_CASE("Parse inline payload with symbol reference", "[payload]")
313
+ {
314
+ Symbols symbols;
315
+ SymbolHelper::buildSymbol("Symbol", symbols);
316
+
317
+ ParseResult<Payload> payload;
318
+ SectionParserHelper<Payload, PayloadParser>::parse(SymbolFixture, RequestBodySectionType, payload, ExportSourcemapOption, symbols);
319
+
320
+ REQUIRE(payload.report.error.code == Error::OK);
321
+ REQUIRE(payload.report.warnings.size() == 0);
322
+
323
+ REQUIRE(payload.node.name.empty());
324
+ REQUIRE(payload.node.description == "Foo");
325
+ REQUIRE(payload.node.parameters.empty());
326
+ REQUIRE(payload.node.headers.empty());
327
+ REQUIRE(payload.node.body == "Bar");
328
+ REQUIRE(payload.node.schema.empty());
329
+
330
+ REQUIRE(payload.sourceMap.name.sourceMap.empty());
331
+ REQUIRE(payload.sourceMap.description.sourceMap.size() == 1);
332
+ REQUIRE(payload.sourceMap.description.sourceMap[0].location == 0);
333
+ REQUIRE(payload.sourceMap.description.sourceMap[0].length == 1);
334
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
335
+ REQUIRE(payload.sourceMap.headers.collection.empty());
336
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
337
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 0);
338
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 1);
339
+ }
340
+
341
+ TEST_CASE("Parse inline payload with symbol reference with extra indentation", "[payload]")
342
+ {
343
+ mdp::ByteBuffer source = \
344
+ "+ Request\n\n"\
345
+ " [Symbol][]\n";
346
+
347
+ Symbols symbols;
348
+ SymbolHelper::buildSymbol("Symbol", symbols);
349
+
350
+ ParseResult<Payload> payload;
351
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestBodySectionType, payload, ExportSourcemapOption, symbols);
352
+
353
+ REQUIRE(payload.report.error.code == Error::OK);
354
+ REQUIRE(payload.report.warnings.size() == 1);
355
+ REQUIRE(payload.report.warnings[0].code == IgnoringWarning);
356
+
357
+ REQUIRE(payload.node.name.empty());
358
+ REQUIRE(payload.node.description.empty());
359
+ REQUIRE(payload.node.parameters.empty());
360
+ REQUIRE(payload.node.headers.empty());
361
+ REQUIRE(payload.node.body == "[Symbol][]\n");
362
+ REQUIRE(payload.node.schema.empty());
363
+
364
+ REQUIRE(payload.sourceMap.name.sourceMap.empty());
365
+ REQUIRE(payload.sourceMap.description.sourceMap.empty());
366
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
367
+ REQUIRE(payload.sourceMap.headers.collection.empty());
368
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
369
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 15);
370
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 15);
371
+ }
372
+
373
+ TEST_CASE("Parse inline payload with symbol reference with foreign content", "[payload]")
374
+ {
375
+ mdp::ByteBuffer source = SymbolFixture;
376
+ source += "\n Foreign\n";
377
+
378
+ Symbols symbols;
379
+ SymbolHelper::buildSymbol("Symbol", symbols);
380
+
381
+ ParseResult<Payload> payload;
382
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestBodySectionType, payload, ExportSourcemapOption, symbols);
383
+
384
+ REQUIRE(payload.report.error.code == Error::OK);
385
+ REQUIRE(payload.report.warnings.size() == 1); // ignoring foreign entry
386
+
387
+ REQUIRE(payload.node.name.empty());
388
+ REQUIRE(payload.node.description == "Foo");
389
+ REQUIRE(payload.node.parameters.empty());
390
+ REQUIRE(payload.node.headers.empty());
391
+ REQUIRE(payload.node.body == "Bar");
392
+ REQUIRE(payload.node.schema.empty());
393
+
394
+ REQUIRE(payload.sourceMap.name.sourceMap.empty());
395
+ REQUIRE(payload.sourceMap.description.sourceMap.size() == 1);
396
+ REQUIRE(payload.sourceMap.description.sourceMap[0].location == 0);
397
+ REQUIRE(payload.sourceMap.description.sourceMap[0].length == 1);
398
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
399
+ REQUIRE(payload.sourceMap.headers.collection.empty());
400
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
401
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 0);
402
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 1);
403
+ }
404
+
405
+ TEST_CASE("Parse named model", "[payload]")
406
+ {
407
+ // Blueprint in question:
408
+ //R"(
409
+ //+ Super Model (text/plain)
410
+ //
411
+ // Hello World!
412
+ //");
413
+
414
+ mdp::ByteBuffer source = "+ Super Model (text/plain)\n\n";
415
+ source += " Hello World!\n";
416
+
417
+ ParseResult<Payload> payload;
418
+ SectionParserHelper<Payload, PayloadParser>::parse(source, ModelBodySectionType, payload, ExportSourcemapOption);
419
+
420
+ REQUIRE(payload.report.error.code == Error::OK);
421
+ REQUIRE(payload.report.warnings.empty());
422
+
423
+ REQUIRE(payload.node.name == "Super");
424
+ REQUIRE(payload.node.description.empty());
425
+ REQUIRE(payload.node.parameters.empty());
426
+ REQUIRE(payload.node.headers.size() == 1);
427
+ REQUIRE(payload.node.headers[0].first == "Content-Type");
428
+ REQUIRE(payload.node.headers[0].second == "text/plain");
429
+ REQUIRE(payload.node.body == "Hello World!\n");
430
+ REQUIRE(payload.node.schema.empty());
431
+
432
+ REQUIRE(payload.sourceMap.name.sourceMap.size() == 1);
433
+ REQUIRE(payload.sourceMap.name.sourceMap[0].location == 2);
434
+ REQUIRE(payload.sourceMap.name.sourceMap[0].length == 26);
435
+ REQUIRE(payload.sourceMap.description.sourceMap.empty());
436
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
437
+ REQUIRE(payload.sourceMap.headers.collection.size() == 1);
438
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap.size() == 1);
439
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap[0].location == 2);
440
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap[0].length == 26);
441
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
442
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 32);
443
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 17);
444
+ }
445
+
446
+ TEST_CASE("Parse nameless model", "[payload]")
447
+ {
448
+ // Blueprint in question:
449
+ //R"(
450
+ //+ Model (text/plain)
451
+ //
452
+ // Hello World!
453
+ //");
454
+
455
+ mdp::ByteBuffer source = "+ Model (text/plain)\n\n";
456
+ source += " Hello World!\n";
457
+
458
+ ParseResult<Payload> payload;
459
+ SectionParserHelper<Payload, PayloadParser>::parse(source, ModelBodySectionType, payload, ExportSourcemapOption);
460
+
461
+ REQUIRE(payload.report.error.code == Error::OK);
462
+ REQUIRE(payload.report.warnings.empty());
463
+
464
+ REQUIRE(payload.node.name.empty());
465
+ REQUIRE(payload.node.description.empty());
466
+ REQUIRE(payload.node.parameters.empty());
467
+ REQUIRE(payload.node.headers.size() == 1);
468
+ REQUIRE(payload.node.headers[0].first == "Content-Type");
469
+ REQUIRE(payload.node.headers[0].second == "text/plain");
470
+ REQUIRE(payload.node.body == "Hello World!\n");
471
+ REQUIRE(payload.node.schema.empty());
472
+
473
+ REQUIRE(payload.sourceMap.name.sourceMap.empty());
474
+ REQUIRE(payload.sourceMap.description.sourceMap.empty());
475
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
476
+ REQUIRE(payload.sourceMap.headers.collection.size() == 1);
477
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap.size() == 1);
478
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap[0].location == 2);
479
+ REQUIRE(payload.sourceMap.headers.collection[0].sourceMap[0].length == 20);
480
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
481
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 26);
482
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 17);
483
+ REQUIRE(payload.sourceMap.schema.sourceMap.empty());
484
+ }
485
+
486
+ TEST_CASE("Warn on malformed payload signature", "[payload]")
487
+ {
488
+ // Blueprint in question:
489
+ //R"(
490
+ //+ Request This is FUN[ (text/plain)
491
+ // Description
492
+ //
493
+ // Line 2
494
+ //
495
+ // + Body
496
+ //
497
+ // Hello World!
498
+ //");
499
+
500
+ mdp::ByteBuffer source = "+ Request This is FUN[ (text/plain)\n";
501
+ source += " Description\n\n";
502
+ source += " Line 2\n\n";
503
+ source += " + Body\n\n";
504
+ source += " Hello World!\n";
505
+
506
+ ParseResult<Payload> payload;
507
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestSectionType, payload, ExportSourcemapOption);
508
+
509
+ REQUIRE(payload.report.error.code == Error::OK);
510
+ REQUIRE(payload.report.warnings.size() == 1);
511
+ REQUIRE(payload.report.warnings[0].code == FormattingWarning);
512
+
513
+ REQUIRE(payload.node.name.empty());
514
+ REQUIRE(payload.node.description == "Description\n\nLine 2\n");
515
+ REQUIRE(payload.node.parameters.empty());
516
+ REQUIRE(payload.node.headers.empty());
517
+ REQUIRE(payload.node.body == "Hello World!\n");
518
+ REQUIRE(payload.node.schema.empty());
519
+
520
+ REQUIRE(payload.sourceMap.name.sourceMap.empty());
521
+ REQUIRE(payload.sourceMap.description.sourceMap.size() == 3);
522
+ REQUIRE(payload.sourceMap.description.sourceMap[0].location == 2);
523
+ REQUIRE(payload.sourceMap.description.sourceMap[0].length == 34);
524
+ REQUIRE(payload.sourceMap.description.sourceMap[1].location == 38);
525
+ REQUIRE(payload.sourceMap.description.sourceMap[1].length == 13);
526
+ REQUIRE(payload.sourceMap.description.sourceMap[2].location == 54);
527
+ REQUIRE(payload.sourceMap.description.sourceMap[2].length == 7);
528
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
529
+ REQUIRE(payload.sourceMap.headers.collection.empty());
530
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
531
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 82);
532
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 17);
533
+ }
534
+
535
+ TEST_CASE("Give a warning of empty message body for requests with certain headers", "[payload]")
536
+ {
537
+ mdp::ByteBuffer source = \
538
+ "+ Request\n"\
539
+ " + Headers \n"\
540
+ "\n"\
541
+ " Content-Length: 100\n";
542
+
543
+ ParseResult<Payload> payload;
544
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestSectionType, payload, ExportSourcemapOption);
545
+
546
+ REQUIRE(payload.report.error.code == Error::OK);
547
+ REQUIRE(payload.report.warnings.size() == 1);
548
+ REQUIRE(payload.report.warnings[0].code == EmptyDefinitionWarning);
549
+
550
+ REQUIRE(payload.node.headers.size() == 1);
551
+ REQUIRE(payload.node.headers[0].first == "Content-Length");
552
+ REQUIRE(payload.node.headers[0].second == "100");
553
+ REQUIRE(payload.node.body.empty());
554
+
555
+ REQUIRE(payload.sourceMap.body.sourceMap.empty());
556
+ }
557
+
558
+ TEST_CASE("Do not report empty message body for requests", "[payload]")
559
+ {
560
+ mdp::ByteBuffer source = \
561
+ "+ Request\n"\
562
+ " + Headers \n"\
563
+ "\n"\
564
+ " Accept: application/json, application/javascript\n";
565
+
566
+ ParseResult<Payload> payload;
567
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestSectionType, payload);
568
+
569
+ REQUIRE(payload.report.error.code == Error::OK);
570
+ REQUIRE(payload.report.warnings.empty());
571
+
572
+ REQUIRE(payload.node.headers.size() == 1);
573
+ REQUIRE(payload.node.headers[0].first == "Accept");
574
+ REQUIRE(payload.node.headers[0].second == "application/json, application/javascript");
575
+ REQUIRE(payload.node.body.empty());
576
+ }
577
+
578
+ TEST_CASE("Give a warning when 100 response has a body", "[payload]")
579
+ {
580
+ mdp::ByteBuffer source = \
581
+ "+ Response 100\n\n"\
582
+ " {}\n";
583
+
584
+ ParseResult<Payload> payload;
585
+ SectionParserHelper<Payload, PayloadParser>::parse(source, ResponseBodySectionType, payload);
586
+
587
+ REQUIRE(payload.report.error.code == Error::OK);
588
+ REQUIRE(payload.report.warnings.size() == 1);
589
+ REQUIRE(payload.report.warnings[0].code == EmptyDefinitionWarning);
590
+
591
+ REQUIRE(payload.node.body == "{}\n");
592
+ }
593
+
594
+ TEST_CASE("Empty body section should shouldn't be parsed as description", "[payload]")
595
+ {
596
+ ParseResult<Payload> payload;
597
+ SectionParserHelper<Payload, PayloadParser>::parse(EmptyBodyFixture, ResponseSectionType, payload, ExportSourcemapOption);
598
+
599
+ REQUIRE(payload.report.error.code == Error::OK);
600
+ REQUIRE(payload.report.warnings.empty());
601
+
602
+ REQUIRE(payload.node.body == "");
603
+
604
+ REQUIRE(payload.sourceMap.body.sourceMap.empty());
605
+ }
606
+
607
+ TEST_CASE("Parameters section should be taken as a description node", "[payload]")
608
+ {
609
+ mdp::ByteBuffer source = \
610
+ "+ Response 200\n\n"\
611
+ " + Parameters\n\n"\
612
+ " + id (string)\n\n"\
613
+ " + Body\n\n"\
614
+ " {}\n";
615
+
616
+ ParseResult<Payload> payload;
617
+ SectionParserHelper<Payload, PayloadParser>::parse(source, ResponseSectionType, payload, ExportSourcemapOption);
618
+
619
+ REQUIRE(payload.report.error.code == Error::OK);
620
+ REQUIRE(payload.report.warnings.empty());
621
+
622
+ REQUIRE(payload.node.description == "+ Parameters\n\n + id (string)\n");
623
+ REQUIRE(payload.node.body == "{}\n");
624
+
625
+ REQUIRE(payload.sourceMap.description.sourceMap.size() == 2);
626
+ REQUIRE(payload.sourceMap.description.sourceMap[0].location == 20);
627
+ REQUIRE(payload.sourceMap.description.sourceMap[0].length == 14);
628
+ REQUIRE(payload.sourceMap.description.sourceMap[1].location == 38);
629
+ REQUIRE(payload.sourceMap.description.sourceMap[1].length == 18);
630
+ REQUIRE(payload.sourceMap.parameters.collection.empty());
631
+ REQUIRE(payload.sourceMap.body.sourceMap.size() == 1);
632
+ REQUIRE(payload.sourceMap.body.sourceMap[0].location == 77);
633
+ REQUIRE(payload.sourceMap.body.sourceMap[0].length == 7);
634
+ }
635
+
636
+ TEST_CASE("Report ignoring nested request objects", "[payload][#163][#189]")
637
+ {
638
+ mdp::ByteBuffer source = \
639
+ "+ Request\n"\
640
+ " + Headers\n"\
641
+ "\n"\
642
+ " Authorization: Basic AAAAA\n"\
643
+ "\n"\
644
+ " + Request (application/x-www-form-urlencoded)\n"\
645
+ "\n"\
646
+ " Hello World\n";
647
+
648
+ ParseResult<Payload> payload;
649
+ SectionParserHelper<Payload, PayloadParser>::parse(source, RequestSectionType, payload);
650
+
651
+ REQUIRE(payload.report.error.code == Error::OK);
652
+ REQUIRE(payload.report.warnings.size() == 1);
653
+ REQUIRE(payload.report.warnings[0].code == IgnoringWarning);
654
+
655
+ REQUIRE(payload.node.headers.size() == 1);
656
+ REQUIRE(payload.node.body.empty());
657
+ }