~ubuntu-branches/ubuntu/natty/kdebindings/natty

« back to all changes in this revision

Viewing changes to perl/qtgui/t/sqlquerymodel.t

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2010-12-01 11:14:38 UTC
  • mfrom: (1.1.41 upstream)
  • Revision ID: james.westby@ubuntu.com-20101201111438-1q61cvs8zw118t3m
Tags: 4:4.5.80-0ubuntu1
* New upstream release
* Remove build-dep on libqimageblitz-dev, causes smoke to segfault

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/perl
 
2
 
 
3
package SqlQueryModelHelp;
 
4
 
 
5
use strict;
 
6
use warnings;
 
7
 
 
8
use QtCore4;
 
9
use QtGui4;
 
10
use QtTest4 qw( QVERIFY );
 
11
use EditableSqlModel;
 
12
use QtCore4::isa qw(Qt::Object);
 
13
use QtCore4::slots
 
14
    testEditability => [],
 
15
    initTestCase => [];
 
16
use Test::More;
 
17
use lib '../';
 
18
use Connection;
 
19
 
 
20
sub NEW {
 
21
    my ($class, $parent) = @_;
 
22
    $class->SUPER::NEW();
 
23
}
 
24
 
 
25
sub testEditability {
 
26
    my $model = this->{model};
 
27
    my $view = this->{view};
 
28
 
 
29
    foreach my $index ( $model->index( 1, 1 ), $model->index( 1, 2 ) ) {
 
30
        my $text;
 
31
        my $curText;
 
32
        my $col = $index->column();
 
33
        if ( $col == 1 ) {
 
34
            $curText = 'Christine';
 
35
            $text = 'Larry';
 
36
        }
 
37
        else {
 
38
            $curText = 'Holand';
 
39
            $text = 'Wall';
 
40
        }
 
41
 
 
42
        is( $model->data( $index, Qt::DisplayRole() )->value(), $curText );
 
43
        my $itemRect = $view->visualRect( $index );
 
44
        Qt::Test::mouseClick( $view->viewport(), Qt::LeftButton(), Qt::NoModifier(), $itemRect->center() );
 
45
        Qt::Test::mouseDClick( $view->viewport(), Qt::LeftButton(), Qt::NoModifier(), $itemRect->center() );
 
46
        my $delegate = ($view->findChildren( 'Qt::LineEdit' ))[0]->[0];
 
47
        Qt::Test::keyClicks( $delegate, $text );
 
48
        Qt::Test::qWait(100);
 
49
        Qt::Test::keyClick( $delegate, Qt::Key_Enter() );
 
50
        Qt::Test::qWait(100);
 
51
 
 
52
        is( $model->data( $index, Qt::DisplayRole() )->value(), $text );
 
53
    }
 
54
}
 
55
 
 
56
sub initializeModel
 
57
{
 
58
    my ($model) = @_;
 
59
    $model->setQuery('select * from person');
 
60
    $model->setHeaderData(0, Qt::Horizontal(), Qt::Variant(Qt::String(Qt::Object::tr('ID'))));
 
61
    $model->setHeaderData(1, Qt::Horizontal(), Qt::Variant(Qt::String(Qt::Object::tr('First name'))));
 
62
    $model->setHeaderData(2, Qt::Horizontal(), Qt::Variant(Qt::String(Qt::Object::tr('Last name'))));
 
63
}
 
64
 
 
65
sub initTestCase {
 
66
    Connection::createConnection();
 
67
    
 
68
    my $editableModel = EditableSqlModel();
 
69
    initializeModel($editableModel);
 
70
 
 
71
    my $view = Qt::TableView();
 
72
    $view->setModel($editableModel);
 
73
    $view->setWindowTitle( Qt::Object::tr('Editable Query Model') );
 
74
    $view->show();
 
75
    
 
76
    Qt::Test::qWaitForWindowShown( $view );
 
77
    Qt::Test::qWait(100);
 
78
    this->{model} = $editableModel;
 
79
    this->{view} = $view;
 
80
    pass( 'Window shown' );
 
81
}
 
82
 
 
83
package main;
 
84
 
 
85
use strict;
 
86
use warnings;
 
87
 
 
88
use QtCore4;
 
89
use QtGui4;
 
90
use QtTest4 qw(QTEST_MAIN);
 
91
use Test::More tests => 5;
 
92
use SqlQueryModelHelp;
 
93
 
 
94
exit QTEST_MAIN('SqlQueryModelHelp');