@@ -109,15 +109,79 @@ def test_start_page(self):
109109 def test_start_in_german (self ):
110110 """ simple test that verifies that the server can serve a start page
111111 and translate text to german. Use page title and remeber login
112- checkbox label.
112+ checkbox label as translation test points..
113+
114+ use:
115+ url parameter @language
116+ cookie set by param
117+ set @language to none and verify language cookie is unset
113118 """
119+
120+ # test url parameter
114121 f = requests .get (self .url_base () + "?@language=de" )
115122 self .assertEqual (f .status_code , 200 )
116123 print (f .content )
117124 self .assertTrue (b'Roundup' in f .content )
118125 self .assertTrue (b'Aufgabenliste' in f .content )
119126 self .assertTrue (b'dauerhaft anmelden?' in f .content )
120127
128+ # test language cookie - should still be german
129+ bluemonster = f .cookies
130+ f = requests .get (self .url_base (), cookies = bluemonster )
131+ self .assertEqual (f .status_code , 200 )
132+ print (f .content )
133+ self .assertTrue (b'Roundup' in f .content )
134+ self .assertTrue (b'Aufgabenliste' in f .content )
135+ self .assertTrue (b'dauerhaft anmelden?' in f .content )
136+
137+ # unset language cookie, should be english
138+ f = requests .get (self .url_base () + "?@language=none" )
139+ self .assertEqual (f .status_code , 200 )
140+ print (f .content )
141+ self .assertTrue (b'Roundup' in f .content )
142+ self .assertFalse (b'Aufgabenliste' in f .content )
143+ self .assertFalse (b'dauerhaft anmelden?' in f .content )
144+ with self .assertRaises (KeyError ):
145+ l = f .cookies ['roundup_language' ]
146+
147+ # check with Accept-Language header
148+ alh = {"Accept-Language" :
149+ "fr;q=0.2, en;q=0.8, de;q=0.9, *;q=0.5" }
150+ f = requests .get (self .url_base (), headers = alh )
151+ self .assertEqual (f .status_code , 200 )
152+ print (f .content )
153+ self .assertTrue (b'Roundup' in f .content )
154+ self .assertTrue (b'Aufgabenliste' in f .content )
155+ self .assertTrue (b'dauerhaft anmelden?' in f .content )
156+
157+ def test_byte_Ranges (self ):
158+ """ Roundup only handles one simple two number range.
159+ Range: 10-20
160+
161+ The following are not supported.
162+ Range: 10-20, 25-30
163+ Range: 10-
164+
165+ Also If-Range only supports strong etags not dates or weak etags.
166+
167+ """
168+ # check with Accept-Language header
169+ hdrs = {"Range" : "bytes=0-10" }
170+ f = requests .get (self .url_base () + "/@@file/style.css" , headers = hdrs )
171+ self .assertEqual (f .status_code , 206 )
172+ self .assertEqual (f .content , b"/* main pag" )
173+
174+ etag = f .headers ['etag' ]
175+ hdrs ['If-Range' ] = etag
176+ f = requests .get (self .url_base () + "/@@file/style.css" , headers = hdrs )
177+ self .assertEqual (f .status_code , 206 )
178+ self .assertEqual (f .content , b"/* main pag" )
179+
180+ etag = f .headers ['etag' ]
181+ hdrs ['If-Range' ] = etag [2 :] # bad tag
182+ f = requests .get (self .url_base () + "/@@file/style.css" , headers = hdrs )
183+ self .assertEqual (f .status_code , 200 )
184+
121185 def test_rest_invalid_method_collection (self ):
122186 # use basic auth for rest endpoint
123187 f = requests .put (self .url_base () + '/rest/data/user' ,
0 commit comments