/
zOMGdev
/
cppcms
Обзор
Документация
Войти
/
zOMGdev
/
cppcms
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v1.2.1
tests/mount_point_test.cpp
122 строки
4 KB
Artyom Beilis
Added missing test cases
07 фев 2012, 13:57
07 фев 2012, 13:57
472c282
Код
Авторство
О чём код?
#include <cppcms/mount_point.h> #include <booster/regex.h> #include <iostream> #include "test.h" std::pair<bool,std::string> res(char const *p) { std::pair<bool,std::string> r(false,""); if(p) { r.first = true; r.second = p; } return r; } void test() { using cppcms::mount_point; { mount_point mp("/test.*"); TEST(mp.match("www.google.com","/test","/foo")==res("/foo")); TEST(mp.match("www.google.com","/test/bar","/foo")==res("/foo")); TEST(mp.match("www.google.com","x/test","/foo")==res(0)); } { mount_point mp("/test(.*)",1); TEST(mp.match("www.google.com","/baz","/test")==res("")); TEST(mp.match("www.google.com","/baz","/test/")==res("/")); TEST(mp.match("www.google.com","/baz","x/test/")==res(0)); } { mount_point mp(mount_point::match_path_info,"/foo"); TEST(mp.match("www.google.com","/foo","/test")==res("/test")); TEST(mp.match("www.google.com","z/foo","/test")==res(0)); } { mount_point mp(mount_point::match_script_name,"/foo"); TEST(mp.match("www.google.com","/bar","/foo")==res("/bar")); TEST(mp.match("www.google.com","/bar","/baz")==res(0)); } { mount_point mp("/foo","/test(.*)",1); TEST(mp.match("www.google.com","/foo","/test")==res("")); TEST(mp.match("www.google.com","/foo","/test/")==res("/")); TEST(mp.match("www.google.com","/foo","x/test/")==res(0)); TEST(mp.match("www.google.com","/bar","/test")==res(0)); TEST(mp.match("www.google.com","/bar/","/test")==res(0)); } { mount_point mp(mount_point::match_path_info,"/baz(.*)",1); TEST(mp.match("www.google.com","/foo.php","/baz/xx")==res("/xx")); TEST(mp.match("www.google.com","/foo.phpx","x/baz")==res(0)); } { mount_point mp(mount_point::match_path_info,"/test","/foo.*",0); TEST(mp.match("www.google.com","/test","/foo")==res("/foo")); TEST(mp.match("www.google.com","/test","/fooz")==res("/fooz")); TEST(mp.match("www.google.com","/testx","/fooz")==res(0)); TEST(mp.match("www.google.com","/test","/fo")==res(0)); } { mount_point mp(mount_point::match_script_name,"(.*)\\.php",1); TEST(mp.match("www.google.com","/foo.php","/test")==res("/foo")); TEST(mp.match("www.google.com","/foo.phpx","/test")==res(0)); } { mount_point mp(mount_point::match_script_name,"/test","(.*)\\.php",1); TEST(mp.match("www.google.com","/foo.php","/test")==res("/foo")); TEST(mp.match("www.google.com","/foo.php","/test1")==res(0)); TEST(mp.match("www.google.com","/foo.php","/test1")==res(0)); } { mount_point mp( mount_point::match_script_name, booster::regex("(.*\\.)?cppcms.com"), booster::regex("/.*.php"), booster::regex("/bar"), 0); TEST(mp.match("artyom.cppcms.com","/foo.php","/bar")==res("/foo.php")); TEST(mp.match("google.com","/foo.php","/bar")==res(0)); TEST(mp.match("artyom.cppcms.com","/foo.aspx","/bar")==res(0)); TEST(mp.match("artyom.cppcms.com","/foo.php","/baz")==res(0)); } { mount_point mp( mount_point::match_path_info, booster::regex("(.*\\.)?cppcms.com"), booster::regex("/test"), booster::regex("/(.*)"), 0); TEST(mp.match("artyom.cppcms.com","/test","/bar")==res("/bar")); TEST(mp.match("artyom.cppcms.com","/testx","/bar")==res(0)); TEST(mp.match("artyom.cppcms.com","/test","")==res(0)); } { mount_point mp( mount_point::match_path_info, booster::regex(), booster::regex(), booster::regex(), 0); TEST(mp.match("artyom.cppcms.com","/test","/bar")==res("/bar")); } { mount_point mp( mount_point::match_script_name, booster::regex(), booster::regex(), booster::regex(), 0); TEST(mp.match("artyom.cppcms.com","/test","/bar")==res("/test")); } } int main() { try { test(); } catch(std::exception const &e) { std::cerr << "Fail:"<<e.what() << std::endl; return 1; } std::cout << "Ok" << std::endl; return 0; }