[gtk+] reftests: Add a shell script to create tests
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] reftests: Add a shell script to create tests
- Date: Fri, 13 May 2011 00:46:33 +0000 (UTC)
commit c2f23ccd230a0dce89848cee987974f277b2aa06
Author: Benjamin Otte <otte redhat com>
Date: Fri May 13 02:41:21 2011 +0200
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.
tests/reftests/Makefile.am | 1 +
tests/reftests/align-expand.sh | 222 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 223 insertions(+), 0 deletions(-)
---
diff --git a/tests/reftests/Makefile.am b/tests/reftests/Makefile.am
index fe8c390..463e45d 100644
--- a/tests/reftests/Makefile.am
+++ b/tests/reftests/Makefile.am
@@ -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 \
diff --git a/tests/reftests/align-expand.sh b/tests/reftests/align-expand.sh
new file mode 100755
index 0000000..4e61f4a
--- /dev/null
+++ b/tests/reftests/align-expand.sh
@@ -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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]