diff -r 000000000000 -r b97547f5f1fa web/test/unittest_views_apacherewrite.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/test/unittest_views_apacherewrite.py Wed Nov 05 15:52:50 2008 +0100 @@ -0,0 +1,39 @@ +from logilab.common.testlib import TestCase, unittest_main + +from cubicweb.web.views.apacherewrite import * + +class ApacheURLRewriteTC(TestCase): + + def test(self): + class MyAppRules(ApacheURLRewrite): + rules = [ + RewriteCond('logilab\.fr', match='host', + rules=[('/(.*)', r'http://www.logilab.fr/\1')], + action='redirect'), + RewriteCond('(www)\.logilab\.fr', match='host', action='stop'), + RewriteCond('/(data|json)/', match='path', action='stop'), + RewriteCond('(?P.*)\.logilab\.fr', match='host', + rules=[('/(.*)', r'/m_%(cat)s/\1')]), + ] + urlrewriter = MyAppRules() + try: + urlrewriter.rewrite('logilab.fr', '/whatever') + self.fail('redirect exception expected') + except Redirect, ex: + self.assertEquals(ex.location, 'http://www.logilab.fr/whatever') + self.assertEquals(urlrewriter.rewrite('www.logilab.fr', '/whatever'), + '/whatever') + self.assertEquals(urlrewriter.rewrite('www.logilab.fr', '/json/bla'), + '/json/bla') + self.assertEquals(urlrewriter.rewrite('abcd.logilab.fr', '/json/bla'), + '/json/bla') + self.assertEquals(urlrewriter.rewrite('abcd.logilab.fr', '/data/bla'), + '/data/bla') + self.assertEquals(urlrewriter.rewrite('abcd.logilab.fr', '/whatever'), + '/m_abcd/whatever') + self.assertEquals(urlrewriter.rewrite('abcd.fr', '/whatever'), + '/whatever') + + +if __name__ == '__main__': + unittest_main()