Mercurial > hg > orthanc
comparison UnitTestsSources/RestApi.cpp @ 762:45b16f67259c lua-scripting
integration mainline -> lua-scripting
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 22 Apr 2014 16:47:21 +0200 |
parents | 203157cb4fde |
children | 3d6f9b7d0add |
comparison
equal
deleted
inserted
replaced
409:63f707278fc8 | 762:45b16f67259c |
---|---|
1 #include "gtest/gtest.h" | |
2 | |
3 #include <ctype.h> | |
4 #include <glog/logging.h> | |
5 | |
6 #include "../Core/ChunkedBuffer.h" | |
7 #include "../Core/HttpClient.h" | |
8 #include "../Core/RestApi/RestApi.h" | |
9 #include "../Core/Uuid.h" | |
10 #include "../Core/OrthancException.h" | |
11 #include "../Core/Compression/ZlibCompressor.h" | |
12 | |
13 using namespace Orthanc; | |
14 | |
15 #if !defined(UNIT_TESTS_WITH_HTTP_CONNEXIONS) | |
16 #error "Please set UNIT_TESTS_WITH_HTTP_CONNEXIONS" | |
17 #endif | |
18 | |
19 TEST(HttpClient, Basic) | |
20 { | |
21 HttpClient c; | |
22 ASSERT_FALSE(c.IsVerbose()); | |
23 c.SetVerbose(true); | |
24 ASSERT_TRUE(c.IsVerbose()); | |
25 c.SetVerbose(false); | |
26 ASSERT_FALSE(c.IsVerbose()); | |
27 | |
28 #if UNIT_TESTS_WITH_HTTP_CONNEXIONS == 1 | |
29 Json::Value v; | |
30 c.SetUrl("http://orthanc.googlecode.com/hg/Resources/Configuration.json"); | |
31 c.Apply(v); | |
32 ASSERT_TRUE(v.isMember("StorageDirectory")); | |
33 //ASSERT_EQ(GetLastStatusText()); | |
34 | |
35 v = Json::nullValue; | |
36 | |
37 HttpClient cc(c); | |
38 cc.SetUrl("https://orthanc.googlecode.com/hg/Resources/Configuration.json"); | |
39 cc.Apply(v); | |
40 ASSERT_TRUE(v.isMember("LuaScripts")); | |
41 #endif | |
42 } | |
43 | |
44 TEST(RestApi, ChunkedBuffer) | |
45 { | |
46 ChunkedBuffer b; | |
47 ASSERT_EQ(0, b.GetNumBytes()); | |
48 | |
49 b.AddChunk("hello", 5); | |
50 ASSERT_EQ(5, b.GetNumBytes()); | |
51 | |
52 b.AddChunk("world", 5); | |
53 ASSERT_EQ(10, b.GetNumBytes()); | |
54 | |
55 std::string s; | |
56 b.Flatten(s); | |
57 ASSERT_EQ("helloworld", s); | |
58 } | |
59 | |
60 TEST(RestApi, ParseCookies) | |
61 { | |
62 HttpHandler::Arguments headers; | |
63 HttpHandler::Arguments cookies; | |
64 | |
65 headers["cookie"] = "a=b;c=d;;;e=f;;g=h;"; | |
66 HttpHandler::ParseCookies(cookies, headers); | |
67 ASSERT_EQ(4u, cookies.size()); | |
68 ASSERT_EQ("b", cookies["a"]); | |
69 ASSERT_EQ("d", cookies["c"]); | |
70 ASSERT_EQ("f", cookies["e"]); | |
71 ASSERT_EQ("h", cookies["g"]); | |
72 | |
73 headers["cookie"] = " name = value ; name2=value2"; | |
74 HttpHandler::ParseCookies(cookies, headers); | |
75 ASSERT_EQ(2u, cookies.size()); | |
76 ASSERT_EQ("value", cookies["name"]); | |
77 ASSERT_EQ("value2", cookies["name2"]); | |
78 | |
79 headers["cookie"] = " ;;; "; | |
80 HttpHandler::ParseCookies(cookies, headers); | |
81 ASSERT_EQ(0u, cookies.size()); | |
82 | |
83 headers["cookie"] = " ; n=v ;; "; | |
84 HttpHandler::ParseCookies(cookies, headers); | |
85 ASSERT_EQ(1u, cookies.size()); | |
86 ASSERT_EQ("v", cookies["n"]); | |
87 } | |
88 | |
89 TEST(RestApi, RestApiPath) | |
90 { | |
91 RestApiPath::Components args; | |
92 UriComponents trail; | |
93 | |
94 { | |
95 RestApiPath uri("/coucou/{abc}/d/*"); | |
96 ASSERT_TRUE(uri.Match(args, trail, "/coucou/moi/d/e/f/g")); | |
97 ASSERT_EQ(1u, args.size()); | |
98 ASSERT_EQ(3u, trail.size()); | |
99 ASSERT_EQ("moi", args["abc"]); | |
100 ASSERT_EQ("e", trail[0]); | |
101 ASSERT_EQ("f", trail[1]); | |
102 ASSERT_EQ("g", trail[2]); | |
103 | |
104 ASSERT_FALSE(uri.Match(args, trail, "/coucou/moi/f")); | |
105 ASSERT_TRUE(uri.Match(args, trail, "/coucou/moi/d/")); | |
106 ASSERT_FALSE(uri.Match(args, trail, "/a/moi/d")); | |
107 ASSERT_FALSE(uri.Match(args, trail, "/coucou/moi")); | |
108 } | |
109 | |
110 { | |
111 RestApiPath uri("/coucou/{abc}/d"); | |
112 ASSERT_FALSE(uri.Match(args, trail, "/coucou/moi/d/e/f/g")); | |
113 ASSERT_TRUE(uri.Match(args, trail, "/coucou/moi/d")); | |
114 ASSERT_EQ(1u, args.size()); | |
115 ASSERT_EQ(0u, trail.size()); | |
116 ASSERT_EQ("moi", args["abc"]); | |
117 } | |
118 | |
119 { | |
120 RestApiPath uri("/*"); | |
121 ASSERT_TRUE(uri.Match(args, trail, "/a/b/c")); | |
122 ASSERT_EQ(0u, args.size()); | |
123 ASSERT_EQ(3u, trail.size()); | |
124 ASSERT_EQ("a", trail[0]); | |
125 ASSERT_EQ("b", trail[1]); | |
126 ASSERT_EQ("c", trail[2]); | |
127 } | |
128 } |