cvs: php-gtk /test bug_gtkliststore_insert_before.phpw bug_gtktreeiter.phpw bug_gtktreemodel_filter_new.phpw bug_gtktreemodel_iter_nth_child.phpw
| From: | Christian Weiske | Date: | Tue, 27 Dec 2005 18:10:30 +0000 |
| Subject: | cvs: php-gtk /test bug_gtkliststore_insert_before.phpw bug_gtktreeiter.phpw bug_gtktreemodel_filter_new.phpw bug_gtktreemodel_iter_nth_child.phpw | ||
| Groups: | php.gtk.cvs | ||
| Request: | Send a blank email to php-gtk-cvs+get-2025@lists.php.net to get a copy of this message | ||
cweiske Tue Dec 27 18:10:30 2005 EDT
Added files:
/php-gtk/test bug_gtktreemodel_iter_nth_child.phpw
bug_gtktreemodel_filter_new.phpw bug_gtktreeiter.phpw
bug_gtkliststore_insert_before.phpw
Log:
The bug tests requested by Steph
http://cvs.php.net/viewcvs.cgi/php-gtk/test/bug_gtktreemodel_iter_nth_child.phpw?view=markup&rev=1.1
Index: php-gtk/test/bug_gtktreemodel_iter_nth_child.phpw
+++ php-gtk/test/bug_gtktreemodel_iter_nth_child.phpw
<?php
/**
Description:
-------------
Another c-ish method:
> $store->iter_nth_child($iter, $parent, 0);
sets $iter to the first child of $parent instead of returning it.
It should be that way:
> $iter = $store->iter_nth_child($parent, 0);
*/
$store = new GtkTreeStore(Gtk::TYPE_STRING);
$root = $store->append(null, array('root'));
$child = $store->append($root, array('child'));
$child2 = $store->append($root, array('child2'));
//OLD
/*
$store->iter_nth_child($child2, $root, 0);
//should be "child"
var_dump($store->get_value($child2, 0));
/**/
//NEW should be:
/**/
$child2 = $store->iter_nth_child($root, 0);
//should be "child"
var_dump($store->get_value($child2, 0));
/**/
?>
http://cvs.php.net/viewcvs.cgi/php-gtk/test/bug_gtktreemodel_filter_new.phpw?view=markup&rev=1.1
Index: php-gtk/test/bug_gtktreemodel_filter_new.phpw
+++ php-gtk/test/bug_gtktreemodel_filter_new.phpw
<?php
/**
GtkTreeModel::filte_new segfaults if no parameter is given
*/
$store = new GtkListStore(Gtk::TYPE_STRING);
$store->append(array('tset'));
//shouldn't crash
echo "waiting for crash\r\n";
$store2 = $store->filter_new();
echo "good - no crash";
?>
http://cvs.php.net/viewcvs.cgi/php-gtk/test/bug_gtktreeiter.phpw?view=markup&rev=1.1
Index: php-gtk/test/bug_gtktreeiter.phpw
+++ php-gtk/test/bug_gtktreeiter.phpw
<?php
/**
Description:
-------------
When trying to compare two GtkTreeIter, I always get true when using
"==", and a false when using "===" for comparison - equal if they point
to the same path or not.
Is that a bug, or are TreeIters not meant to be compared?
*/
$store = new GtkListStore(Gtk::TYPE_STRING);
$iter = $store->append(array('test'));
$iter2 = $store->append(array('test2'));
echo "Value of iter: " . $store->get_value($iter, 0) . "\r\n";
echo "Value of iter2: " . $store->get_value($iter2, 0) . "\r\n";
//should be false
if ($iter == $iter2) {
echo "wrong: different iters equal ==\r\n";
} else {
echo "ok\r\n";
}
//should be false
if ($iter === $iter2) {
echo "wrong: different iters equal ===\r\n";
} else {
echo "ok\r\n";
}
$iter3 = $store->iter_children();
echo "Value of iter3: " . $store->get_value($iter3, 0) . "\r\n";
//should be true
if ($iter == $iter3) {
echo "ok\r\n";
} else {
echo "wrong: iters pointing to the same row don't equal ==\r\n";
}
//should be true again
if ($iter === $iter3) {
echo "ok\r\n";
} else {
echo "wrong: iters pointing to the same row don't equal ===\r\n";
}
?>
http://cvs.php.net/viewcvs.cgi/php-gtk/test/bug_gtkliststore_insert_before.phpw?view=markup&rev=1.1
Index: php-gtk/test/bug_gtkliststore_insert_before.phpw
+++ php-gtk/test/bug_gtkliststore_insert_before.phpw
<?php
/**
Description:
-------------
When writing the docs for GtkListStore, I noted the too C-ish style of
insert_before and insert_after.
> insert_before($iter, $sibling)
inserts a *new* row before $sibling, and changes the $iter to the new
iterator. That pointer change is c-ish and not php-like.
IMO it should be that way:
> $iter = $store->insert_before($sibling);
or, with an optional parameter as insert() has:
> $iter = $store->insert_before($sibling, array('value0', 'value1'));
So that one doesn't have to create an GtkTreeIter before one can insert
a row before another one. (And we can't even create that on our own!)
The same applies to insert_after.
*/
$store = new GtkListStore(Gtk::TYPE_STRING);
$iter = $store->append(array('test'));
//OLD
/*
//current C-ish behavior:
//create new iter
$newiter = $iter->copy();
//let the function fill it
$store->insert_before($newiter, $iter);
//should be NULL
var_dump($store->get_value($newiter, 0));
//should still be "test"
var_dump($store->get_value($iter, 0));
//should be 2
var_dump($store->iter_n_children(null));
/**/
//NEW
/**/
$newiter = $store->insert_before($iter);
//should be NULL now
var_dump($store->get_value($newiter, 0));
//should be 2
var_dump($store->iter_n_children(null));
/**/
?>