mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-05 16:20:10 +00:00
reftests: Add a shell script to create tests
See the documentation in the script. Tests are not yet added as the output from the 2 included scripts doesn't match and the intended reference output first needs to be agreed on.
This commit is contained in:
parent
b219b3b0ec
commit
c2f23ccd23
@ -25,6 +25,7 @@ clean-local:
|
||||
rm -rf output/ || true
|
||||
|
||||
EXTRA_DIST += \
|
||||
align-expand.sh \
|
||||
box-packing.css \
|
||||
box-packing.ref.ui \
|
||||
box-packing.ui \
|
||||
|
222
tests/reftests/align-expand.sh
Executable file
222
tests/reftests/align-expand.sh
Executable file
@ -0,0 +1,222 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# align-expand.sh [METHOD]
|
||||
#
|
||||
# This is the script used to create the align-expand tests. These tests
|
||||
# put a 20x20 size-requested GtkTreeView into a 40x40 size-requested
|
||||
# container and try to achieve multiple combinations of expand and align
|
||||
# flags. The resulting GtkBuilder file is written to stdout. All of the
|
||||
# resulting files should render identical.
|
||||
#
|
||||
# METHOD is one of:
|
||||
# * flags (default)
|
||||
# Uses expand flags to align and expand the treeview inside a GtkGrid.
|
||||
# You should use this as the reference when adding tests for other
|
||||
# methods
|
||||
# * alignment
|
||||
# Aligns and expands the treeview in a GtkAlignment using its scale
|
||||
# and align properties.
|
||||
|
||||
|
||||
if test $# -lt 1; then
|
||||
method="flags"
|
||||
else
|
||||
method=$1
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.0 -->
|
||||
<object class="GtkWindow" id="window">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="type">popup</property>
|
||||
<child>
|
||||
<object class="GtkGrid" id="grid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="row_spacing">2</property>
|
||||
<property name="column_spacing">2</property>
|
||||
EOF
|
||||
|
||||
|
||||
y=2
|
||||
for hexpand in False True; do
|
||||
for halign in "start" center end fill; do
|
||||
|
||||
cat << EOF
|
||||
<child>
|
||||
<object class="GtkLabel" id="hexpand-$halign-$hexpand">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label">$hexpand</property>
|
||||
<property name="angle">90</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">$y</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="halign-$halign-$hexpand">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label">$halign</property>
|
||||
<property name="angle">90</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">$y</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
EOF
|
||||
x=2
|
||||
for vexpand in False True; do
|
||||
for valign in "start" center end fill; do
|
||||
|
||||
if test $y = "2"; then
|
||||
cat << EOF
|
||||
<child>
|
||||
<object class="GtkLabel" id="vexpand-$valign-$vexpand">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label">$vexpand</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">$x</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="valign-$valign-$vexpand">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label">$valign</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">$x</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
EOF
|
||||
fi
|
||||
|
||||
if test $method = "flags"; then
|
||||
|
||||
cat << EOF
|
||||
<child>
|
||||
<object class="GtkGrid" id="grid-$valign-$halign-$vexpand-$hexpand">
|
||||
<property name="width_request">40</property>
|
||||
<property name="height_request">40</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="treeview-$valign-$halign-$vexpand-$hexpand">
|
||||
<property name="width_request">20</property>
|
||||
<property name="height_request">20</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">$halign</property>
|
||||
<property name="valign">$valign</property>
|
||||
<property name="hexpand">$hexpand</property>
|
||||
<property name="vexpand">$vexpand</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">$x</property>
|
||||
<property name="top_attach">$y</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
EOF
|
||||
|
||||
elif test $method = "alignment"; then
|
||||
|
||||
xscale=0.0
|
||||
case "$halign" in
|
||||
"start") xalign=0.0 ;;
|
||||
"center") xalign=0.5 ;;
|
||||
"end") xalign=1.0 ;;
|
||||
"fill") xalign=0.5; xscale=1.0 ;;
|
||||
esac
|
||||
if test $hexpand = "True"; then
|
||||
xscale=1.0
|
||||
fi
|
||||
|
||||
yscale=0.0
|
||||
case "$valign" in
|
||||
"start") yalign=0.0 ;;
|
||||
"center") yalign=0.5 ;;
|
||||
"end") yalign=1.0 ;;
|
||||
"fill") yalign=0.5; yscale=1.0 ;;
|
||||
esac
|
||||
if test $vexpand = "True"; then
|
||||
yscale=1.0
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
<child>
|
||||
<object class="GtkAlignment" id="align-$valign-$halign-$vexpand-$hexpand">
|
||||
<property name="width_request">40</property>
|
||||
<property name="height_request">40</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">$xalign</property>
|
||||
<property name="yalign">$yalign</property>
|
||||
<property name="xscale">$xscale</property>
|
||||
<property name="yscale">$yscale</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="treeview-$valign-$halign-$vexpand-$hexpand">
|
||||
<property name="width_request">20</property>
|
||||
<property name="height_request">20</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">$x</property>
|
||||
<property name="top_attach">$y</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
EOF
|
||||
|
||||
else
|
||||
|
||||
exit 1
|
||||
|
||||
fi
|
||||
|
||||
x=`expr $x + 1`
|
||||
done
|
||||
done
|
||||
|
||||
y=`expr $y + 1`
|
||||
x=0
|
||||
done
|
||||
done
|
||||
|
||||
cat << EOF
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
EOF
|
Loading…
Reference in New Issue
Block a user