src/server/test/rewrite.c

changeset 651
ed74879c7041
parent 648
205d41b19a13
child 652
dd90c858eb74
equal deleted inserted replaced
650:3e4f9cdd70b8 651:ed74879c7041
27 */ 27 */
28 28
29 #include "rewrite.h" 29 #include "rewrite.h"
30 30
31 #include "../daemon/rewrite.h" 31 #include "../daemon/rewrite.h"
32 #include "../daemon/config.h"
32 #include <cx/mempool.h> 33 #include <cx/mempool.h>
34 #include <cx/linked_list.h>
33 #include <string.h> 35 #include <string.h>
34 36
35 CX_TEST(test_rewrite_rule_create) { 37 CX_TEST(test_rewrite_rule_create) {
36 CxMempool *mp = cxMempoolCreate(100, CX_MEMPOOL_TYPE_ADVANCED); 38 CxMempool *mp = cxMempoolCreate(100, CX_MEMPOOL_TYPE_ADVANCED);
37 const CxAllocator *a = mp->allocator; 39 const CxAllocator *a = mp->allocator;
38 40
41 ServerConfiguration cfg = { NULL };
42 cfg.a = a;
43 cfg.destr = cxLinkedListCreate(a, NULL, sizeof(ScfgDestr));
44
39 CX_TEST_DO { 45 CX_TEST_DO {
40 RewriteRule *rule = rewrite_rule_create(a, cx_mutstr(NULL), cx_mutstr("/rewrite")); 46 RewriteRule *rule = rewrite_rule_create(&cfg, cx_mutstr(NULL), cx_mutstr("/rewrite"));
41 CX_TEST_ASSERT(rule != NULL); 47 CX_TEST_ASSERT(rule != NULL);
42 CX_TEST_ASSERT(!rule->has_regex); 48 CX_TEST_ASSERT(!rule->has_regex);
43 CX_TEST_ASSERT(rule->url != NULL); 49 CX_TEST_ASSERT(rule->url != NULL);
44 50
45 cxmutstr newuri = string_template_build_string(rule->url, a, NULL, NULL); 51 cxmutstr newuri = string_template_build_string(rule->url, a, NULL, NULL);
46 CX_TEST_ASSERT(!cx_strcmp(newuri, "/rewrite")); 52 CX_TEST_ASSERT(!cx_strcmp(newuri, "/rewrite"));
47 53
48 RewriteRule *rule2 = rewrite_rule_create(a, cx_mutstr("/path/(.*)/files/"), cx_mutstr("/rewrite/$1/")); 54 RewriteRule *rule2 = rewrite_rule_create(&cfg, cx_mutstr("/path/(.*)/files/"), cx_mutstr("/rewrite/$1/"));
49 CX_TEST_ASSERT(rule2 != NULL); 55 CX_TEST_ASSERT(rule2 != NULL);
50 CX_TEST_ASSERT(rule2->has_regex); 56 CX_TEST_ASSERT(rule2->has_regex);
51 CX_TEST_ASSERT(rule2->url != NULL); 57 CX_TEST_ASSERT(rule2->url != NULL);
52 } 58 }
53 59
60 server_config_destroy(&cfg);
54 cxMempoolFree(mp); 61 cxMempoolFree(mp);
55 } 62 }
56 63
57 CX_TEST(test_rewrite_url_no_regex) { 64 CX_TEST(test_rewrite_url_no_regex) {
58 CxMempool *mp = cxMempoolCreate(100, CX_MEMPOOL_TYPE_ADVANCED); 65 CxMempool *mp = cxMempoolCreate(100, CX_MEMPOOL_TYPE_ADVANCED);
59 const CxAllocator *a = mp->allocator; 66 const CxAllocator *a = mp->allocator;
67
68 ServerConfiguration cfg = { NULL };
69 cfg.a = a;
70 cfg.destr = cxLinkedListCreate(a, NULL, sizeof(ScfgDestr));
60 71
61 RewriteRule rule; 72 RewriteRule rule;
62 memset(&rule, 0, sizeof(RewriteRule)); 73 memset(&rule, 0, sizeof(RewriteRule));
63 rule.url = string_template_compile(a, cx_str("/static/")); 74 rule.url = string_template_compile(a, cx_str("/static/"));
64 75
69 CX_TEST_ASSERT(r == 0); 80 CX_TEST_ASSERT(r == 0);
70 CX_TEST_ASSERT(new_url != NULL); 81 CX_TEST_ASSERT(new_url != NULL);
71 CX_TEST_ASSERT(!strcmp(new_url, "/static/")); 82 CX_TEST_ASSERT(!strcmp(new_url, "/static/"));
72 } 83 }
73 84
85 server_config_destroy(&cfg);
74 cxMempoolFree(mp); 86 cxMempoolFree(mp);
75 } 87 }

mercurial