[libchamplain] Test the property selection-mode
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Subject: [libchamplain] Test the property selection-mode
- Date: Tue, 28 Jul 2009 21:40:29 +0000 (UTC)
commit 4446c6aa4ce3280409088df256946706d991853b
Author: Emmanuel Rodriguez <emmanuel rodriguez gmail com>
Date: Thu Jul 9 23:22:50 2009 +0200
Test the property selection-mode
.../perl/Champlain/t/ChamplainSelectionLayer.t | 62 ++++++++++++++++++--
.../perl/Champlain/xs/ChamplainSelectionLayer.xs | 8 +++
2 files changed, 65 insertions(+), 5 deletions(-)
---
diff --git a/bindings/perl/Champlain/t/ChamplainSelectionLayer.t b/bindings/perl/Champlain/t/ChamplainSelectionLayer.t
index c042bd6..48c4e45 100644
--- a/bindings/perl/Champlain/t/ChamplainSelectionLayer.t
+++ b/bindings/perl/Champlain/t/ChamplainSelectionLayer.t
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use Clutter::TestHelper tests => 24;
+use Clutter::TestHelper tests => 39;
use Champlain;
use Data::Dumper;
@@ -11,24 +11,27 @@ use Data::Dumper;
exit tests();
sub tests {
- test_empty();
-# test_markers_single();
+ test_empty_multiple();
+ test_empty_single();
test_markers_multiple();
return 0;
}
-sub test_empty {
+sub test_empty_multiple {
my $layer = Champlain::SelectionLayer->new();
isa_ok($layer, 'Champlain::Layer');
+ is($layer->get_selection_mode, 'multiple');
+ is($layer->get('selection_mode'), 'multiple');
+
is($layer->get_selected, undef, "[empty] get_selected()");
# In single mode get_selected_markers doesn't work
is_deeply(
[$layer->get_selected_markers],
- [],
+ [],
"[empty] get_selected_markers()"
);
@@ -44,6 +47,55 @@ sub test_empty {
# $layer->select_all();
$layer->unselect_all();
+ # Change the selection mode
+ $layer->set_selection_mode('single');
+ is($layer->get_selection_mode, 'single');
+
+ $layer->set('selection_mode', 'multiple');
+ is($layer->get('selection_mode'), 'multiple');
+
+ return 0;
+}
+
+
+sub test_empty_single {
+ my $layer = Champlain::SelectionLayer->new();
+ isa_ok($layer, 'Champlain::Layer');
+
+ is($layer->get_selection_mode, 'multiple');
+ is($layer->get('selection_mode'), 'multiple');
+ $layer->set_selection_mode('single');
+ is($layer->get_selection_mode, 'single');
+ is($layer->get('selection_mode'), 'single');
+
+ is($layer->get_selected, undef, "[empty] get_selected()");
+
+ # In single mode get_selected_markers doesn't work
+ is_deeply(
+ [$layer->get_selected_markers],
+ [],
+ "[empty] get_selected_markers()"
+ );
+
+ my $count = $layer->count_selected_markers;
+ is($count, 0, "[empty] count_selected_markers()");
+
+ my $marker = Champlain::BaseMarker->new();
+ ok(!$layer->marker_is_selected($marker), "[empty] marker_is_selected()");
+
+ # Can't be tested but at least they are invoked
+ $layer->select($marker);
+ $layer->unselect($marker);
+# $layer->select_all();
+ $layer->unselect_all();
+
+ # Change the selection mode
+ $layer->set_selection_mode('multiple');
+ is($layer->get_selection_mode, 'multiple');
+
+ $layer->set('selection_mode', 'single');
+ is($layer->get('selection_mode'), 'single');
+
return 0;
}
diff --git a/bindings/perl/Champlain/xs/ChamplainSelectionLayer.xs b/bindings/perl/Champlain/xs/ChamplainSelectionLayer.xs
index 72d4f29..8e0f8fb 100644
--- a/bindings/perl/Champlain/xs/ChamplainSelectionLayer.xs
+++ b/bindings/perl/Champlain/xs/ChamplainSelectionLayer.xs
@@ -54,3 +54,11 @@ champlain_selection_layer_marker_is_selected (ChamplainSelectionLayer *layer, Ch
void
champlain_selection_layer_unselect_all (ChamplainSelectionLayer *layer)
+
+
+void
+champlain_selection_layer_set_selection_mode (ChamplainSelectionLayer *layer, ChamplainSelectionMode mode);
+
+
+ChamplainSelectionMode
+champlain_selection_layer_get_selection_mode (ChamplainSelectionLayer *layer);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]