gtk/testsuite/reftests
Benjamin Otte e683e915b8 css: Queue resize for properties that affect clip
This fixes shadows that are animated not updating the clip of the widget
they are drawn on. An example of this are the buttons in the CSS shadows
example in gtk-demo.

Reftest included
2014-10-03 06:18:04 +02:00
..
721800-0px-dotted-border.css reftests: Add reftest for 0px border fix 2014-01-14 03:38:04 +01:00
721800-0px-dotted-border.ref.ui reftests: Add reftest for 0px border fix 2014-01-14 03:38:04 +01:00
721800-0px-dotted-border.ui reftests: Add reftest for 0px border fix 2014-01-14 03:38:04 +01:00
actionbar.css Make the action bar reftest reliable 2014-01-14 14:05:37 -05:00
actionbar.ref.ui Adjust action ref test to new realities 2014-02-16 23:03:38 -05:00
actionbar.ui Adjust action ref test to new realities 2014-02-16 23:03:38 -05:00
align-expand.sh
alignment-props.css
alignment-props.ref.ui
alignment-props.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
animation-direction.css reftests: Add a reftest for 'animation-direction' 2014-07-07 20:06:47 +02:00
animation-direction.ref.ui Fix animation-direction reftest 2014-08-10 19:11:38 -04:00
animation-direction.ui Fix animation-direction reftest 2014-08-10 19:11:38 -04:00
background-area.css reftests: Fix background-area test 2014-05-22 17:38:50 +02:00
background-area.ref.ui
background-area.ui
background-color-transparent.css reftests: Fix random failures of reftest 2014-06-09 19:18:48 +02:00
background-color-transparent.ref.ui
background-color-transparent.ui
background-image-multiple.css
background-image-multiple.ref.ui
background-image-multiple.ui
background-origin.css
background-origin.ref.ui
background-origin.ui
background-position-repeat-bg.png
background-position-repeat.css
background-position-repeat.ref.ui
background-position-repeat.ui
background-position-simple.css
background-position-simple.ref.ui
background-position-simple.ui
background-position.css
background-position.ref.ui
background-position.ui
background-positioning-area-empty.ref.ui
background-positioning-area-empty.ui
background-repeat.css reftests: Fix some more easy GtkButton shadow cases 2014-05-22 11:46:07 -04:00
background-repeat.ref.ui
background-repeat.ui
background-size-keywords.css
background-size-keywords.ref.ui
background-size-keywords.ui
background-size-zero.css
background-size-zero.ref.ui
background-size-zero.ui
background-size.css
background-size.ref.ui
background-size.ui
background-window-transparent.css
background-window-transparent.ref.ui
background-window-transparent.ui
bad-color-names.css
bad-color-names.ref.ui
bad-color-names.ui
border-color-default.css
border-color-default.ref.ui
border-color-default.ui
border-half-pixel.css
border-half-pixel.ref.ui
border-half-pixel.ui
border-image-3-balls-green-squished.png reftests: Fix rendering issues with border-image reftest 2013-11-19 02:29:48 +01:00
border-image-3-balls-green.png
border-image-3-balls-yellow-squished.png reftests: Fix rendering issues with border-image reftest 2013-11-19 02:29:48 +01:00
border-image-3-balls-yellow.png
border-image-ball-green.png
border-image-ball-red.png
border-image-ball-yellow.png
border-image-balls.png
border-image-excess-size.css
border-image-excess-size.ref.ui
border-image-excess-size.ui
border-image-gradient.css
border-image-gradient.ref.ui
border-image-gradient.ui
border-image-url-scaled.css reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-image-url-scaled.ref.ui reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-image-url-scaled.ui reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-image-url.css
border-image-url.ref.ui
border-image-url.ui
border-radius-clamp.css
border-radius-clamp.ref.ui
border-radius-clamp.ui
border-rgb.png reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-rgb@2.png reftest: Add reftest for scaled image borders - fails on GDK_SCALE=2 2013-07-05 15:21:55 +02:00
border-style-none.css
border-style-none.ref.ui
border-style-none.ui
border-style.css
border-style.ref.ui
border-style.ui
box-child-expand.ref.ui reftests: Add a reftest for the expand change in GtkBox 2013-06-30 03:39:09 +02:00
box-child-expand.ui reftests: Add a reftest for the expand change in GtkBox 2013-06-30 03:39:09 +02:00
box-packing.css
box-packing.ref.ui
box-packing.ui
box-pseudo-classes.css
box-pseudo-classes.ref.ui
box-pseudo-classes.ui
box-shadow-spec-inset.css reftests: Fix some more easy GtkButton shadow cases 2014-05-22 11:46:07 -04:00
box-shadow-spec-inset.ref.ui
box-shadow-spec-inset.ui
box-shadow-spread.css roundedbox: Only grow border-radius if there is one 2014-08-21 00:54:07 +02:00
box-shadow-spread.ref.ui roundedbox: Only grow border-radius if there is one 2014-08-21 00:54:07 +02:00
box-shadow-spread.ui roundedbox: Only grow border-radius if there is one 2014-08-21 00:54:07 +02:00
button-wrapping.ref.ui
button-wrapping.ui
cellrenderer-pixbuf-stock-rtl.css reftests: Add a reftest for the cell renderer fix 2013-09-05 18:48:47 +02:00
cellrenderer-pixbuf-stock-rtl.ref.ui reftests: Add a reftest for the cell renderer fix 2013-09-05 18:48:47 +02:00
cellrenderer-pixbuf-stock-rtl.ui reftests: Add a reftest for the cell renderer fix 2013-09-05 18:48:47 +02:00
css-currentcolor-alpha.css reftests: Add test for just fixed Polari crasher 2013-09-06 03:04:44 +02:00
css-currentcolor-alpha.ref.ui reftests: Add test for just fixed Polari crasher 2013-09-06 03:04:44 +02:00
css-currentcolor-alpha.ui reftests: Add test for just fixed Polari crasher 2013-09-06 03:04:44 +02:00
css-match-class.css
css-match-class.ref.ui
css-match-class.ui
css-match-descendant-later.css
css-match-descendant-later.ref.ui
css-match-descendant-later.ui
css-match-exact.css
css-match-exact.ref.ui
css-match-exact.ui
css-match-import-import.css
css-match-import.css
css-match-import.ref.ui
css-match-import.ui
css-match-inherit-different-state.css
css-match-inherit-different-state.ref.ui
css-match-inherit-different-state.ui
css-match-inherit.css
css-match-inherit.ref.ui
css-match-inherit.ui
css-match-name.css
css-match-name.ref.ui
css-match-name.ui
css-match-region-matches-star.css
css-match-region-matches-star.ref.ui
css-match-region-matches-star.ui
css-match-regions.css
css-match-regions.ref.ui
css-match-regions.ui
css-match-siblings.css
css-match-siblings.ref.ui
css-match-siblings.ui
css-match-subtype.css
css-match-subtype.ref.ui
css-match-subtype.ui
css-match-type.css
css-match-type.ref.ui
css-match-type.ui
css-multi-state.css reftests: Update for :active => :checked change 2014-08-16 20:41:32 +02:00
css-multi-state.ref.ui reftests: Fix for state propagation changes 2013-06-13 15:31:35 +02:00
css-multi-state.ui reftests: Fix for state propagation changes 2013-06-13 15:31:35 +02:00
entry-progress-coloring.css reftests: never set interior-focus 2014-05-09 11:02:42 -07:00
entry-progress-coloring.ref.ui
entry-progress-coloring.ui
expand-expander.c Add an expander reftest 2014-06-02 22:36:01 -04:00
expander.ref.ui Add an expander reftest 2014-06-02 22:36:01 -04:00
expander.ui Add an expander reftest 2014-06-02 22:36:01 -04:00
fixed-widget-stacking.ref.ui reftests: Add a test for a widget stacking regression 2014-02-28 03:08:11 +01:00
fixed-widget-stacking.ui reftests: Add a test for a widget stacking regression 2014-02-28 03:08:11 +01:00
flipping-icons.ref.ui Add a reftest for flipping icons 2014-06-02 21:41:32 -04:00
flipping-icons.ui Add a reftest for flipping icons 2014-06-02 21:41:32 -04:00
font-sizes-names.css
font-sizes-names.ref.ui
font-sizes-names.ui
green-20x20.png
grid-empty-with-spacing.ref.ui
grid-empty-with-spacing.ui
grid-expand.css
grid-expand.ref.ui
grid-expand.ui
grid-homogeneous.css
grid-homogeneous.ref.ui
grid-homogeneous.ui
grid-spacing1.ref.ui
grid-spacing1.ui
grid-spacing2.ref.ui
grid-spacing2.ui
grid-spacing3.css
grid-spacing3.ref.ui
grid-spacing3.ui
grid-wfh.ref.ui
grid-wfh.ui
gtk-icontheme-sizing.css reftest: Add reftest for CSS sizing fix 2014-07-23 18:51:26 +02:00
gtk-icontheme-sizing.ref.ui reftest: Add reftest for CSS sizing fix 2014-07-23 18:51:26 +02:00
gtk-icontheme-sizing.ui reftest: Add reftest for CSS sizing fix 2014-07-23 18:51:26 +02:00
gtk-image-effect-inherit.css reftests: I can't count in CSS 2013-09-07 00:23:38 +02:00
gtk-image-effect-inherit.ref.ui reftests: Check that -gtk-image-effect is inherited 2013-09-07 00:21:48 +02:00
gtk-image-effect-inherit.ui reftests: Check that -gtk-image-effect is inherited 2013-09-07 00:21:48 +02:00
gtk-reftest.c reftest: Add missing include of reftest-snapshot.h 2014-09-22 15:19:51 +02:00
gtk-reftest.h reftest: Split our more functionality 2014-09-21 18:58:45 +02:00
icon-shadow-no-transform.css reftests: Add a test for recent commits 2014-05-14 04:28:35 +02:00
icon-shadow-no-transform.ref.ui reftests: Add a test for recent commits 2014-05-14 04:28:35 +02:00
icon-shadow-no-transform.ui reftests: Add a test for recent commits 2014-05-14 04:28:35 +02:00
icon-style-basics.css reftests: Add a reftest for -gtk-icon-style 2014-05-14 04:28:34 +02:00
icon-style-basics.ref.ui reftests: Add a reftest for -gtk-icon-style 2014-05-14 04:28:34 +02:00
icon-style-basics.ui reftests: Add a reftest for -gtk-icon-style 2014-05-14 04:28:34 +02:00
icon-vfuncs.css reftests: Fix icon-vfuncs reftest 2014-05-22 22:35:08 +02:00
icon-vfuncs.ref.ui reftests: Fix icon-vfuncs reftest 2014-05-22 22:35:08 +02:00
icon-vfuncs.ui reftests: Fix icon-vfuncs reftest 2014-05-22 22:35:08 +02:00
iconview-empty.css
iconview-empty.ref.ui Fix iconview-empty reftest 2013-06-15 21:31:41 -04:00
iconview-empty.ui
image-icon-shadow-clipping.css image: Implement clipping support for icon-shadow 2014-10-03 06:18:04 +02:00
image-icon-shadow-clipping.ref.ui image: Implement clipping support for icon-shadow 2014-10-03 06:18:04 +02:00
image-icon-shadow-clipping.ui image: Implement clipping support for icon-shadow 2014-10-03 06:18:04 +02:00
image-load-from-file.css
image-load-from-file.ref.ui
image-load-from-file.ui
info-bar-message-types.css
info-bar-message-types.ref.ui
info-bar-message-types.ui
inherit-and-initial.css reftests: Use "all" property in inherit-and-inital test 2014-06-03 14:35:00 +02:00
inherit-and-initial.ref.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
inherit-and-initial.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
label-attribute-preference.css reftests: Fix CSS for tests after :link introduction 2013-11-09 16:43:06 +01:00
label-attribute-preference.ref.ui
label-attribute-preference.ui
label-background.css reftests: Add test for latest fix 2014-07-12 07:13:28 +02:00
label-background.ref.ui reftests: Add test for latest fix 2014-07-12 07:13:28 +02:00
label-background.ui reftests: Add test for latest fix 2014-07-12 07:13:28 +02:00
label-box-shadow-clip.css label: Respect box-shadow when computing clip 2014-08-21 00:54:07 +02:00
label-box-shadow-clip.ref.ui label: Respect box-shadow when computing clip 2014-08-21 00:54:07 +02:00
label-box-shadow-clip.ui label: Respect box-shadow when computing clip 2014-08-21 00:54:07 +02:00
label-clipping.css reftests: Add test for the recent label changes 2014-07-10 18:56:35 +02:00
label-clipping.ref.ui reftests: Add test for the recent label changes 2014-07-10 18:56:35 +02:00
label-clipping.ui reftests: Add test for the recent label changes 2014-07-10 18:56:35 +02:00
label-ellipsize-small.ref.ui
label-ellipsize-small.ui
label-ellipsize-with-big.ref.ui
label-ellipsize-with-big.ui
label-shadows.css
label-shadows.ref.ui
label-shadows.ui
label-sizing.css
label-sizing.ref.ui label-sizing reftest: Hardcode ltr 2014-06-03 12:28:06 -04:00
label-sizing.ui label-sizing reftest: Hardcode ltr 2014-06-03 12:28:06 -04:00
label-small-ellipsized.ref.ui
label-small-ellipsized.ui
label-text-shadow-changes-modify-clip.c css: Queue resize for properties that affect clip 2014-10-03 06:18:04 +02:00
label-text-shadow-changes-modify-clip.css css: Queue resize for properties that affect clip 2014-10-03 06:18:04 +02:00
label-text-shadow-changes-modify-clip.ref.ui css: Queue resize for properties that affect clip 2014-10-03 06:18:04 +02:00
label-text-shadow-changes-modify-clip.ui css: Queue resize for properties that affect clip 2014-10-03 06:18:04 +02:00
label-text-shadow-clipping.css reftests: Actually add a text-shadow to the text-shadow reftest 2014-09-30 13:43:36 -06:00
label-text-shadow-clipping.ref.ui label: Don't clip text shadows 2014-07-31 17:50:24 +02:00
label-text-shadow-clipping.ui label: Don't clip text shadows 2014-07-31 17:50:24 +02:00
label-width-chars-dont-shrink.ref.ui
label-width-chars-dont-shrink.ui
label-wrap-justify.ref.ui
label-wrap-justify.ui
linear-gradient-transition-to-other.css
linear-gradient-transition-to-other.ref.ui
linear-gradient-transition-to-other.ui
linear-gradient.css
linear-gradient.ref.ui
linear-gradient.ui
link-coloring.css reftests: Add test for new :link and :visited 2013-11-04 16:36:11 +01:00
link-coloring.ref.ui reftests: Add test for new :link and :visited 2013-11-04 16:36:11 +01:00
link-coloring.ui reftests: Add test for new :link and :visited 2013-11-04 16:36:11 +01:00
Makefile.am css: Queue resize for properties that affect clip 2014-10-03 06:18:04 +02:00
marble.xpm
messagedialog-secondarytext.ref.ui
messagedialog-secondarytext.ui
misc-alignment.css
misc-alignment.ref.ui
misc-alignment.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
named-colors.css
named-colors.ref.ui
named-colors.ui
no-colors.css
no-colors.ref.ui
no-colors.ui
nonresizable-size.ref.ui
nonresizable-size.ui
notebook-childproperties.css
notebook-childproperties.ref.ui
notebook-childproperties.ui
notebook-tab-position.css notebook: set tab position style class on the main frame 2014-06-14 21:37:07 +02:00
notebook-tab-position.ref.ui notebook: set tab position style class on the main frame 2014-06-14 21:37:07 +02:00
notebook-tab-position.ui notebook: set tab position style class on the main frame 2014-06-14 21:37:07 +02:00
nth-child.css
nth-child.ref.ui
nth-child.ui
opacity-initial.css widget: Don't assume opacity is 100% 2014-09-07 01:57:10 +02:00
opacity-initial.ref.ui widget: Don't assume opacity is 100% 2014-09-07 01:57:10 +02:00
opacity-initial.ui widget: Don't assume opacity is 100% 2014-09-07 01:57:10 +02:00
opacity.css
opacity.ref.ui
opacity.ui
overlay-no-main-widget.ref.ui overlay: Handle overlays when no main widget exists 2014-09-07 01:57:09 +02:00
overlay-no-main-widget.ui overlay: Handle overlays when no main widget exists 2014-09-07 01:57:09 +02:00
paned-undersized.css
paned-undersized.ref.ui
paned-undersized.ui
pseudoclass-on-box.css reftests: Update for :active => :checked change 2014-08-16 20:41:32 +02:00
pseudoclass-on-box.ref.ui reftests: Add a reftest for recent widget path fix 2014-07-22 03:06:04 +02:00
pseudoclass-on-box.ui reftests: Add a reftest for recent widget path fix 2014-07-22 03:06:04 +02:00
pseudoclass-on-parent.css reftests: Update for :active => :checked change 2014-08-16 20:41:32 +02:00
pseudoclass-on-parent.ref.ui reftests: Add reftest for new pseudoclass support 2014-07-21 01:03:47 +02:00
pseudoclass-on-parent.ui reftests: Add reftest for new pseudoclass support 2014-07-21 01:03:47 +02:00
quit-mnemonic.css
quit-mnemonic.ref.ui
quit-mnemonic.ui
README
reference-background-origin.png
reftest-compare.c reftest: Split out some functionality into own file 2014-09-21 18:58:45 +02:00
reftest-compare.h reftest: Split out some functionality into own file 2014-09-21 18:58:45 +02:00
reftest-module.c Fix reftests for builddir != srcdir 2014-08-10 19:11:39 -04:00
reftest-module.h gtk-reftest: Allow loading code for reftests 2014-05-31 05:19:41 +02:00
reftest-snapshot.c reftest: Split our more functionality 2014-09-21 18:58:45 +02:00
reftest-snapshot.h reftest: Split our more functionality 2014-09-21 18:58:45 +02:00
reftests-dark.test.in Disable deprecation warnings for installed reftests 2014-06-28 11:13:17 -04:00
reftests-hc.test.in Disable deprecation warnings for installed reftests 2014-06-28 11:13:17 -04:00
reftests.test.in Disable deprecation warnings for installed reftests 2014-06-28 11:13:17 -04:00
reset-to-defaults.css css: Implement "all" shorthand 2014-05-11 03:23:55 +02:00
revealer-extra-size.ref.ui reftests: Add a reftest for the latest fix 2014-02-20 02:10:07 +01:00
revealer-extra-size.ui reftests: Add a reftest for the latest fix 2014-02-20 02:10:07 +01:00
revealer-wrappable-contents.ref.ui reftests: Add reftest for last commit 2014-02-23 15:40:46 +01:00
revealer-wrappable-contents.ui reftests: Add reftest for last commit 2014-02-23 15:40:46 +01:00
rotated-layout.ref.ui
rotated-layout.ui
separator-size.ref.ui Don't use stock APIs in the testsuite 2013-06-24 19:53:08 -04:00
separator-size.ui reftests: Improve workaround for GtkGrid bug 2014-07-10 18:56:34 +02:00
set-default-direction.c reftests: Add a way to hardcode text direction 2014-06-03 12:28:06 -04:00
set-default-direction.ref.ui reftests: Add reftest for direction change 2014-05-31 05:19:41 +02:00
set-default-direction.ui reftests: Add reftest for direction change 2014-05-31 05:19:41 +02:00
shadow-clip-rounding.css css: Round shadow extents properly 2014-08-21 00:54:07 +02:00
shadow-clip-rounding.ref.ui css: Round shadow extents properly 2014-08-21 00:54:07 +02:00
shadow-clip-rounding.ui css: Round shadow extents properly 2014-08-21 00:54:07 +02:00
shorthand-entry-border.css
shorthand-entry-border.ref.ui
shorthand-entry-border.ui
sibling-pseudoclasses.css reftests: Update for :active => :checked change 2014-08-16 20:41:32 +02:00
sibling-pseudoclasses.ref.ui css: Match state in siblings properly 2014-08-13 16:51:16 +02:00
sibling-pseudoclasses.ui css: Match state in siblings properly 2014-08-13 16:51:16 +02:00
simple.ref.ui
simple.ui
sizegroups-basics.css
sizegroups-basics.ref.ui
sizegroups-basics.ui
sizegroups-evolution-identity-page.ref.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
sizegroups-evolution-identity-page.ui Replace all margin-left and margin-right with margin-start and margin-end 2013-11-15 02:54:35 +01:00
sizegroups-get-preferred-null.ref.ui
sizegroups-get-preferred-null.ui
statusbar-remove-all.c reftests: Add reftest for statusbar fix 2014-08-14 19:52:59 +02:00
statusbar-remove-all.ref.ui reftests: Add reftest for statusbar fix 2014-08-14 19:52:59 +02:00
statusbar-remove-all.ui reftests: Add reftest for statusbar fix 2014-08-14 19:52:59 +02:00
style-properties-nth-child.css
style-properties-nth-child.ref.ui
style-properties-nth-child.ui
style-properties-only-child.css
style-properties-only-child.ref.ui
style-properties-only-child.ui
symbolic-icon-translucent-color.css reftests: Add a test for the symbolic color fix 2013-10-05 13:57:51 +02:00
symbolic-icon-translucent-color.ref.ui Fix symbolic-icon-translucent-color reftest 2014-08-12 15:51:36 +02:00
symbolic-icon-translucent-color.ui Fix symbolic-icon-translucent-color reftest 2014-08-12 15:51:36 +02:00
textview-border-windows.c TextView: render the background of border windows 2014-06-15 18:57:06 +02:00
textview-border-windows.css Add a TextView reftests checking border-windows 2014-06-15 18:56:30 +02:00
textview-border-windows.ref.ui Add a TextView reftests checking border-windows 2014-06-15 18:56:30 +02:00
textview-border-windows.ui TextView: render the background of border windows 2014-06-15 18:57:06 +02:00
textview-margins.css TextView margin reftest 2014-06-15 18:15:43 +02:00
textview-margins.ref.ui reftests: Make textview-margins pass in make check 2014-08-10 07:41:53 -04:00
textview-margins.ui reftests: Make textview-margins pass in make check 2014-08-10 07:41:53 -04:00
toplevel-vs-popup.ref.ui
toplevel-vs-popup.ui gtkwindow: Remove resize grips 2014-07-03 12:58:41 -04:00
treeview-fixed-height.css
treeview-fixed-height.ref.ui
treeview-fixed-height.ui
treeview-headers-hidden.ref.ui
treeview-headers-hidden.ui
unresolvable.css
unresolvable.ref.ui
unresolvable.ui
window-border-width.ref.ui
window-border-width.ui
window-default-size.ref.ui
window-default-size.ui
window-height-for-width.ref.ui reftests: Add test for latest commit 2014-04-29 19:36:26 +02:00
window-height-for-width.ui reftests: Add test for latest commit 2014-04-29 19:36:26 +02:00
window-show-contents-on-map.ref.ui reftests: Add a reftest with signals 2014-05-31 05:19:40 +02:00
window-show-contents-on-map.ui reftests: Add a reftest with signals 2014-05-31 05:19:40 +02:00

gtk-reftest is a new test runner supposed to do a lot of generic tests.
Run it like this:

./gtk-reftest [OPTIONS] TESTFILE [TESTFILES...]

where FILE is a GtkBuilder ui file to run.

For a general test named "test", you want to have the following files:
1) test.ui
2) test.ref.ui
3) test.css (optional)
The test will then check that test.ui and test.ref.ui are rendered
identically with the provided css.

In detail, for every provided TESTFILE the test runner will:
1) Add the css to the default screen
2) Load the test.ui file and the test.ref.ui file
3) Grab the first GtkWindow subclass widget
4) gtk_widget_show() it and take a snapshot image of its contents into
   a cairo surface.
5) Compare the two images to be bitwise identical. If they are not, a
   diff image will be created hilighting the differences.
6) Save the images as png files to the output directory named:
   - test.out.png (rendering of test.ui)
   - test.ref.png (rendering of test.ref.ui)
   - test.diff.png (optional, differences from step 5)
7) Fail the test if the two images are not bitwise identical

Credit for the idea of reftests goes to Mozilla and in particular David
Baron. For a larger introduction of why reftests are useful, see
http://weblogs.mozillazine.org/roc/archives/2008/12/reftests.html