summaryrefslogtreecommitdiff
path: root/plugin/business/pangu-http/src/test_pattern_replace.cpp
diff options
context:
space:
mode:
authorfengweihao <[email protected]>2021-06-10 15:28:45 +0800
committerfengweihao <[email protected]>2021-06-10 15:28:45 +0800
commitd18b647ec5203e8f7497a6b96523be7f832d6f8b (patch)
tree921a23021065c41a390e00aa50e2d973bbee7230 /plugin/business/pangu-http/src/test_pattern_replace.cpp
parentbd01e15472358d8acaf89cae044cb7b4da9e4814 (diff)
TSG-6535 代理支持重定向URL携带用户信息v4.5.3-202106
test_patter_replace增加UrlReplace测试用例
Diffstat (limited to 'plugin/business/pangu-http/src/test_pattern_replace.cpp')
-rw-r--r--plugin/business/pangu-http/src/test_pattern_replace.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/plugin/business/pangu-http/src/test_pattern_replace.cpp b/plugin/business/pangu-http/src/test_pattern_replace.cpp
index ccd9c1d..c993b06 100644
--- a/plugin/business/pangu-http/src/test_pattern_replace.cpp
+++ b/plugin/business/pangu-http/src/test_pattern_replace.cpp
@@ -173,6 +173,61 @@ TEST(PatternReplace, QueryAdd)
printf("%s\n", output);
free(output);
+
+ return;
+}
+
+TEST(PatternReplace, UrlReplace)
+{
+ int i=0, n_rule=0;
+ char replace_with[TFE_SYMBOL_MAX]={0};
+ struct replace_rule *rule;
+ char *rewrite_uri=NULL;
+
+ const char *rd_url = "http://www.example.com/query?pageid=12345&policy_id={{tsg_policy_id}}&user_id={{tsg_subscriber_id}}&source_ip={{tsg_client_ip}}";
+
+ if(strstr(rd_url, "policy_id")==NULL && strstr(rd_url, "user_id")==NULL && strstr(rd_url, "source_ip")==NULL)
+ {
+ return;
+ }
+
+ rule = ALLOC(struct replace_rule, 3);
+ n_rule=0;
+ rule[n_rule].zone = kZoneRequestUri;
+ rule[n_rule].find = tfe_strdup("policy_id={{tsg_policy_id}}");
+ snprintf(replace_with, TFE_SYMBOL_MAX, "policy_id=%d", 23);
+ rule[n_rule].replace_with = tfe_strdup(replace_with);
+
+ n_rule=1;
+ memset(replace_with, TFE_SYMBOL_MAX, 0);
+ rule[n_rule].zone = kZoneRequestUri;
+ rule[n_rule].find = tfe_strdup("user_id={{tsg_subscriber_id}}");
+ rule[n_rule].replace_with = tfe_strdup("user_id=te&st01");
+
+ n_rule=2;
+ memset(replace_with, TFE_SYMBOL_MAX, 0);
+ rule[n_rule].zone = kZoneRequestUri;
+ rule[n_rule].find = tfe_strdup("source_ip={{tsg_client_ip}}");
+ rule[n_rule].replace_with = tfe_strdup("source_ip=192.168.50.71");
+
+ size_t rewrite_uri_sz = execute_replace_rule(rd_url, strlen(rd_url), kZoneRequestUri, rule, n_rule+1, &rewrite_uri, 1);
+
+ for(i=0; i<n_rule+1; i++)
+ {
+ FREE(&(rule[i].find));
+ FREE(&(rule[i].replace_with));
+ }
+ FREE(&rule);
+
+ if(rewrite_uri_sz > 0 && rewrite_uri != NULL)
+ {
+ printf("rewrite_uri = %s\n", rewrite_uri);
+ free(rewrite_uri);
+ }
+ else
+ {
+ printf("rd_url = %s\n", rd_url);
+ }
return;
}