| 227 | |
| 228 | |
| 229 | class RenderHandler(object): |
| 230 | def __init__(self, test_case): |
| 231 | self.test_case = test_case |
| 232 | |
| 233 | # Asserts for True/False will be checked just before shutdown. |
| 234 | # Test whether asserts are working correctly. |
| 235 | self.test_for_True = True |
| 236 | |
| 237 | self.GetViewRect_True = False |
| 238 | self.OnPaint_True = False |
| 239 | self.OnTextSelectionChanged_True = False |
| 240 | |
| 241 | def GetViewRect(self, rect_out, **_): |
| 242 | """Called to retrieve the view rectangle which is relative |
| 243 | to screen coordinates. Return True if the rectangle was |
| 244 | provided.""" |
| 245 | # rect_out --> [x, y, width, height] |
| 246 | self.GetViewRect_True = True |
| 247 | rect_out.extend([0, 0, 800, 600]) |
| 248 | return True |
| 249 | |
| 250 | def OnPaint(self, element_type, paint_buffer, **_): |
| 251 | """Called when an element should be painted.""" |
| 252 | if element_type == cef.PET_VIEW: |
| 253 | self.test_case.assertEqual(paint_buffer.width, 800) |
| 254 | self.test_case.assertEqual(paint_buffer.height, 600) |
| 255 | if not self.OnPaint_True: |
| 256 | self.OnPaint_True = True |
| 257 | subtest_message("RenderHandler.OnPaint: viewport ok") |
| 258 | else: |
| 259 | raise Exception("Unsupported element_type in OnPaint") |
| 260 | |
| 261 | def OnTextSelectionChanged(self, selected_text, selected_range, **_): |
| 262 | if not self.OnTextSelectionChanged_True: |
| 263 | self.OnTextSelectionChanged_True = True |
| 264 | # First call |
| 265 | self.test_case.assertEqual(selected_text, "") |
| 266 | self.test_case.assertEqual(selected_range, [0, 0]) |
| 267 | else: |
| 268 | # Second call. |
| 269 | # <h1> tag should be selected. |
| 270 | self.test_case.assertEqual(selected_text, |
| 271 | "Off-screen rendering test") |
| 272 | |
| 273 | |
| 274 | if __name__ == "__main__": |