1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
#!/usr/bin/perl
package MainWindowsMDITest;
use strict;
use warnings;
use QtCore4;
use QtGui4;
use QtTest4 qw( QVERIFY );
use MainWindow;
use QtCore4::isa qw(Qt::Object);
use QtCore4::slots
private => 1,
initTestCase => [],
testSave => [],
testFocus => [];
use Test::More;
sub NEW {
my ($class, $parent) = @_;
$class->SUPER::NEW();
}
sub testSave {
my $mainWin = this->{mainWin};
$mainWin->newFile();
my $activeWindow = $mainWin->activeMdiChild();
my $text = 'Hello, World!';
Qt::Test::keyClicks($activeWindow, $text, Qt::NoModifier());
my $filename = 'MdiTestFile';
$activeWindow->saveFile($filename);
open my $fh, '<', $filename;
my $result = <$fh>;
close $fh;
#QVERIFY( $text eq $result, 'File write contents' );
is( $text, $result, 'File write contents' );
unlink $filename;
$activeWindow->parent->close();
}
sub testFocus {
my $mainWin = this->{mainWin};
$mainWin->newFile();
my $child1 = $mainWin->activeMdiChild();
$mainWin->newFile();
my $child2 = $mainWin->activeMdiChild();
my ($windowMenu) = grep{ $_->title && $_->title eq '&Window' }
@{ $mainWin->menuBar->findChildren('Qt::Menu') };
Qt::Test::qWaitForWindowShown($child2);
foreach my $winId ( 2, 1, 2, 1 ) {
Qt::Test::keyClicks($mainWin, 'w', Qt::ALT());
Qt::Test::qWaitForWindowShown($windowMenu);
Qt::Test::keyClicks($windowMenu, $winId);
Qt::Test::qWait(200);
my $child;
if ( $winId == 1 ) {
$child = $child1;
}
else {
$child = $child2;
}
#QVERIFY( $mainWin->activeMdiChild() eq $child, 'Widget focus' );
is( $mainWin->activeMdiChild(), $child, 'Widget focus' );
}
$child1->parent()->close();
$child2->parent()->close();
}
sub initTestCase {
my $mainWin = MainWindow();
$mainWin->show();
this->{mainWin} = $mainWin;
}
package main;
use strict;
use warnings;
use QtCore4;
use QtGui4;
use QtTest4 qw(QTEST_MAIN);
use MainWindowsMDITest;
use Test::More tests => 5;
exit QTEST_MAIN('MainWindowsMDITest');
|