summaryrefslogtreecommitdiff
path: root/plugin/business/pangu-http/src/test_edit_element.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/business/pangu-http/src/test_edit_element.cpp')
-rw-r--r--plugin/business/pangu-http/src/test_edit_element.cpp89
1 files changed, 89 insertions, 0 deletions
diff --git a/plugin/business/pangu-http/src/test_edit_element.cpp b/plugin/business/pangu-http/src/test_edit_element.cpp
index 07b2eb8..5893846 100644
--- a/plugin/business/pangu-http/src/test_edit_element.cpp
+++ b/plugin/business/pangu-http/src/test_edit_element.cpp
@@ -134,6 +134,95 @@ TEST(EditElement, Libxml_Inside_Remove_Facebook)
free(output);
}
+TEST(EditElement, Libxml_Whole_Remove_Google_Test)
+{
+ char* output=NULL;
+ size_t output_sz=0,input_len=0;
+
+ const char* filename="./test_data/google_search_gtest_cnblog.html";
+
+ FILE* fp=NULL;
+ struct stat file_info;
+ stat(filename, &file_info);
+ size_t input_sz=file_info.st_size;
+
+ fp=fopen(filename,"r");
+ ASSERT_FALSE(fp==NULL);
+ if(fp==NULL)
+ {
+ return;
+ }
+ char* input=(char*)malloc(input_sz);
+ fread(input,1,input_sz,fp);
+ fclose(fp);
+
+ const char *user_region = "{\"rules\":[{\"anchor_element\":{\"search_scope\":\"whole_file\",\"start_indicator\":\"g\",\"contained_keyword\":\"thrift-service-framework/src/test/java/com/cnblogs/yjmyzz at master\"},\
+ \"target_element\":{\"target_distance_from_matching\":4,\"element_treatment\":\"remove\"}}]}";
+
+ simple_edit_element(user_region, input, input_len, &output, &output_sz, 0);
+ EXPECT_TRUE(output_sz>0);
+
+ EXPECT_TRUE(NULL==strstr(output, "thrift-service-framework/src/test/java/com/cnblogs/yjmyzz at master"));
+ free(input);
+ free(output);
+}
+
+TEST(EditElement, Cjson_Inside_Mark_NO_Match)
+{
+ char* output=NULL;
+ size_t output_sz=0;
+
+ const char *input ="{\"A\":\"B\",\"C\":[\"D\", \"E\"],\"F\":{\"G\":{\"H\":\"I\"}},\"J\":{\"K\":[{\"L\":\"M\"}],\"N\":\"Q\"}}\n\n{\"data\":{\"user\":{\"id\":\"1\",\"units\":\
+ {\"edges\":[{\"eligible\":true,\"story\":{\"message\":{\"text\":\"Firefox 3.6 with System\\uff0c\\u7f16\\u8f91\"}}}]}}}}";
+
+ const char *user_region = "{\"rules\":[{\"anchor_element\":{\"search_scope\":\"inside_element\",\"start_indicator\":\"error_message\",\"contained_keyword\":\"Firefox 3.6 with System\"},\
+ \"target_element\":{\"target_distance_from_matching\":1,\"element_treatment\":\"mark\"}}]}";
+
+ simple_edit_element(user_region, input, strlen(input), &output, &output_sz, 0);
+ EXPECT_TRUE(output_sz==0);
+
+ free(output);
+}
+
+TEST(EditElement, Cjson_Inside_Mark_Match)
+{
+ char* output=NULL;
+ size_t output_sz=0;
+
+ const char *input ="{\"A\":\"B\",\"C\":[\"D\", \"E\"],\"F\":{\"G\":{\"H\":\"I\"}},\"J\":{\"K\":[{\"L\":\"M\"}],\"N\":\"Q\"}}\n\n{\"data\":{\"user\":{\"id\":\"1\",\"units\":\
+ {\"edges\":[{\"eligible\":true,\"story\":{\"message\":{\"text\":\"Firefox 3.6 with System\\uff0c\\u7f16\\u8f91\"}}}]}}}}";
+
+ const char *user_region = "{\"rules\":[{\"anchor_element\":{\"search_scope\":\"inside_element\",\"start_indicator\":\"message\",\"contained_keyword\":\"Firefox 3.6 with System\"},\
+ \"target_element\":{\"target_distance_from_matching\":1,\"element_treatment\":\"mark\"}}]}";
+
+ simple_edit_element(user_region, input, strlen(input), &output, &output_sz, 0);
+ EXPECT_TRUE(output_sz>0);
+
+ EXPECT_TRUE(NULL!=strstr(output, "need_filter"));
+ EXPECT_TRUE(NULL!=strstr(output, "need_check"));
+
+ free(output);
+}
+
+TEST(EditElement, LibXML_Inside_Mark_Match)
+{
+ char* output=NULL;
+ size_t output_sz=0;
+
+ const char *input = "<!DOCTYPE html>\n<!-- saved from url=(0038)https://www.facebook.com -->\n<html id=\"facebook\">\n\
+<head>\n<title>Facebook</title>\n<head>\n<body>\n<div class=\"f530mmz5\"><div class=\"c1et5uql\">Firefox 3.6 with System</div></div>\n</body>";
+
+ const char *user_region = "{\"rules\":[{\"anchor_element\":{\"search_scope\":\"inside_element\",\"start_indicator\":\"f530mmz5\",\"contained_keyword\":\"Firefox 3.6 with System\"},\
+ \"target_element\":{\"target_distance_from_matching\":1,\"element_treatment\":\"mark\"}}]}";
+
+ simple_edit_element(user_region, input, strlen(input), &output, &output_sz, 0);
+ EXPECT_TRUE(output_sz>0);
+
+ EXPECT_TRUE(NULL!=strstr(output, "need_filter"));
+ EXPECT_TRUE(NULL!=strstr(output, "need_check"));
+ free(output);
+}
+
int main(int argc, char ** argv)
{