69 ('*', '*', 0.7)]) |
69 ('*', '*', 0.7)]) |
70 |
70 |
71 |
71 |
72 class WebRequestTC(unittest.TestCase): |
72 class WebRequestTC(unittest.TestCase): |
73 |
73 |
74 def test_base_url(self): |
|
75 dummy_vreg = FakeCWRegistryStore(FakeConfig(), initlog=False) |
|
76 dummy_vreg.config['base-url'] = 'http://babar.com/' |
|
77 dummy_vreg.config['https-url'] = 'https://toto.com/' |
|
78 |
|
79 req = CubicWebRequestBase(dummy_vreg, https=False) |
|
80 self.assertEqual('http://babar.com/', req.base_url()) |
|
81 self.assertEqual('http://babar.com/', req.base_url(False)) |
|
82 self.assertEqual('https://toto.com/', req.base_url(True)) |
|
83 |
|
84 req = CubicWebRequestBase(dummy_vreg, https=True) |
|
85 self.assertEqual('https://toto.com/', req.base_url()) |
|
86 self.assertEqual('http://babar.com/', req.base_url(False)) |
|
87 self.assertEqual('https://toto.com/', req.base_url(True)) |
|
88 |
|
89 def test_negotiated_language(self): |
74 def test_negotiated_language(self): |
90 vreg = FakeCWRegistryStore(FakeConfig(), initlog=False) |
75 vreg = FakeCWRegistryStore(FakeConfig(), initlog=False) |
91 vreg.config.translations = {'fr': (None, None), 'en': (None, None)} |
76 vreg.config.translations = {'fr': (None, None), 'en': (None, None)} |
92 headers = { |
77 headers = { |
93 'Accept-Language': 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3', |
78 'Accept-Language': 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3', |
94 } |
79 } |
95 req = CubicWebRequestBase(vreg, https=False, headers=headers) |
80 req = CubicWebRequestBase(vreg, headers=headers) |
96 self.assertEqual(req.negotiated_language(), 'fr') |
81 self.assertEqual(req.negotiated_language(), 'fr') |
97 |
82 |
98 def test_build_url_language_from_url(self): |
83 def test_build_url_language_from_url(self): |
99 vreg = FakeCWRegistryStore(FakeConfig(), initlog=False) |
84 vreg = FakeCWRegistryStore(FakeConfig(), initlog=False) |
100 vreg.config['base-url'] = 'http://testing.fr/cubicweb/' |
85 vreg.config['base-url'] = 'http://testing.fr/cubicweb/' |
101 vreg.config['language-mode'] = 'url-prefix' |
86 vreg.config['language-mode'] = 'url-prefix' |
102 vreg.config.translations['fr'] = text_type, text_type |
87 vreg.config.translations['fr'] = text_type, text_type |
103 req = CubicWebRequestBase(vreg, https=False) |
88 req = CubicWebRequestBase(vreg) |
104 # Override from_controller to avoid getting into relative_path method, |
89 # Override from_controller to avoid getting into relative_path method, |
105 # which is not implemented in CubicWebRequestBase. |
90 # which is not implemented in CubicWebRequestBase. |
106 req.from_controller = lambda : 'not view' |
91 req.from_controller = lambda : 'not view' |
107 self.assertEqual(req.lang, 'en') # site's default language |
92 self.assertEqual(req.lang, 'en') # site's default language |
108 self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/en/view') |
93 self.assertEqual(req.build_url(), 'http://testing.fr/cubicweb/en/view') |