summaryrefslogtreecommitdiff
path: root/plugin/business/pangu-http/src/test_pattern_replace.cpp
diff options
context:
space:
mode:
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;
}