allow monkey tests to specify a redraw area for plot-check steps

This commit is contained in:
Vincent Sanders 2021-02-07 22:57:27 +00:00
parent ff225194f3
commit a091dc3603
2 changed files with 23 additions and 3 deletions

View File

@ -400,9 +400,14 @@ The window to be rendered is identified with the `window` key, the
value of this must be a previously created window identifier or an
assert will occur.
The `area` key allows control of the area to be redraw. The parameters are on two forms:
* A sequence of four numbers in the form `x0 y0 x1 y1`
* The keyword extent which attempt to plot the entire extent of the canvas
An optional list of checks may be specified with the `checks` key. If
any check is not satisfied an assert will occur and the test will
fail.
fail. Multiple checks can be specified and all most pass successfully.
The checks available are:
@ -416,8 +421,10 @@ The checks available are:
- action: plot-check
window: win1
area: extent
checks:
- text-contains: NetSurf
- text-contains: Browser
- text-not-contains: Chrome
- bitmap-count: 1

View File

@ -217,7 +217,7 @@ def run_test_step_action_launch(ctx, step):
ctx['browser'] = DriverBrowser(
monkey_cmd=monkey_cmd,
monkey_env=monkey_env,
quiet=True,
quiet=False,
wrapper=ctx.get("wrapper"))
assert_browser(ctx)
ctx['windows'] = dict()
@ -436,13 +436,26 @@ def run_test_step_action_plot_check(ctx, step):
print(get_indent(ctx) + "Action: " + step["action"])
assert_browser(ctx)
win = ctx['windows'][step['window']]
if 'area' in step.keys():
if step["area"] == "extent":
# ought to capture the extent updates and use that, instead use a
# big area and have the browser clip it
area=["0","0","1000","1000000"]
else:
area = [step["area"]]
else:
area = None
# get the list of checks
if 'checks' in step.keys():
checks = step['checks']
else:
checks = {}
all_text_list = []
bitmaps = []
for plot in win.redraw():
for plot in win.redraw(coords=area):
if plot[0] == 'TEXT':
all_text_list.extend(plot[6:])
if plot[0] == 'BITMAP':