MCPcopy Create free account
hub / github.com/cztomczak/cefpython / LoadHandler

Class LoadHandler

unittests/_common.py:182–233  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

180
181
182class LoadHandler(object):
183 def __init__(self, test_case, datauri):
184 self.test_case = test_case
185 self.datauri = datauri
186 self.frame_source_visitor = None
187
188 # Asserts for True/False will be checked just before shutdown
189 self.test_for_True = True # Test whether asserts are working correctly
190 self.OnLoadStart_True = False
191 self.OnLoadEnd_True = False
192 self.FrameSourceVisitor_True = False
193 # self.OnLoadingStateChange_Start_True = False # FAILS
194 self.OnLoadingStateChange_End_True = False
195
196 def OnLoadStart(self, browser, frame, **_):
197 self.test_case.assertFalse(self.OnLoadStart_True)
198 self.OnLoadStart_True = True
199 self.test_case.assertEqual(browser.GetUrl(), frame.GetUrl())
200 self.test_case.assertEqual(browser.GetUrl(), self.datauri)
201
202 def OnLoadEnd(self, browser, frame, http_code, **_):
203 # OnLoadEnd should be called only once
204 self.test_case.assertFalse(self.OnLoadEnd_True)
205 self.OnLoadEnd_True = True
206 self.test_case.assertEqual(http_code, 200)
207 self.frame_source_visitor = FrameSourceVisitor(self, self.test_case)
208 frame.GetSource(self.frame_source_visitor)
209 browser.ExecuteJavascript("print('LoadHandler.OnLoadEnd() ok')")
210
211 subtest_message("Executing callbacks registered with on_load_end()")
212 global g_on_load_end_callbacks
213 for callback_data in g_on_load_end_callbacks:
214 callback_data[0](*callback_data[1])
215 del g_on_load_end_callbacks
216
217 def OnLoadingStateChange(self, browser, is_loading, can_go_back,
218 can_go_forward, **_):
219 if is_loading:
220 # TODO: this test fails, looks like OnLoadingStaetChange with
221 # is_loading=False is being called very fast, before
222 # OnLoadStart and before client handler is set by calling
223 # browser.SetClientHandler().
224 # SOLUTION: allow to set OnLoadingStateChange through
225 # SetGlobalClientCallback similarly to _OnAfterCreated().
226 # self.test_case.assertFalse(self.OnLoadingStateChange_Start_True)
227 # self.OnLoadingStateChange_Start_True = True
228 pass
229 else:
230 self.test_case.assertFalse(self.OnLoadingStateChange_End_True)
231 self.OnLoadingStateChange_End_True = True
232 self.test_case.assertEqual(browser.CanGoBack(), can_go_back)
233 self.test_case.assertEqual(browser.CanGoForward(), can_go_forward)
234
235
236class FrameSourceVisitor(object):

Callers 2

test_osrMethod · 0.70
test_mainMethod · 0.70

Calls

no outgoing calls

Tested by 2

test_osrMethod · 0.56
test_mainMethod · 0.56