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 97 98
|
#!/usr/bin/perl
package WidgetsCalculator;
use strict;
use warnings;
use QtCore4;
use QtGui4;
use QtTest4;
use Calculator;
use QtCore4::isa qw(Qt::Object);
use QtCore4::slots
private => 1,
initTestCase => [],
cleanup => [],
testAdd => [],
testSubtract => [],
testMemory => [];
use Test::More;
sub NEW {
my ($class, $parent) = @_;
$class->SUPER::NEW();
}
sub testAdd {
my $widget = this->{widget};
my $button5 = $widget->digitButtons->[5];
my $plusButton = $widget->{plusButton};
my $button4 = $widget->digitButtons->[4];
my $equalButton = $widget->{equalButton};
foreach my $widget ( $button4, $plusButton, $button5, $equalButton ) {
Qt::Test::mouseClick( $widget, Qt::LeftButton() );
}
is($widget->display->text(), 5+4, 'Addition');
}
sub testSubtract {
my $widget = this->{widget};
my $button5 = $widget->digitButtons->[5];
my $minusButton = $widget->{minusButton};
my $button4 = $widget->digitButtons->[4];
my $equalButton = $widget->{equalButton};
foreach my $widget ( $button5, $minusButton, $button4, $equalButton ) {
Qt::Test::mouseClick( $widget, Qt::LeftButton() );
}
is($widget->display->text(), 5-4, 'Subtraction');
}
sub testMemory {
my $widget = this->{widget};
my $button5 = $widget->digitButtons->[5];
my $plusButton = $widget->{plusButton};
my $button3 = $widget->digitButtons->[3];
my $equalButton = $widget->{equalButton};
my $setMemoryButton = $widget->{setMemoryButton};
my $readMemoryButton = $widget->{readMemoryButton};
foreach my $widget ( $button5, $plusButton, $button3, $equalButton, $setMemoryButton, $button3, $plusButton, $readMemoryButton, $equalButton ) {
Qt::Test::mouseClick( $widget, Qt::LeftButton() );
}
is($widget->display->text(), 5+3+3, 'Memory');
}
sub initTestCase {
my $widget = Calculator();
$widget->show();
this->{widget} = $widget;
Qt::Test::qWaitForWindowShown($widget);
}
sub cleanup {
this->{widget}->clear();
}
package main;
use strict;
use warnings;
use QtCore4;
use QtGui4;
use QtTest4;
use WidgetsCalculator;
use Test::More tests=>3;
sub main {
my $app = Qt::Application(\@ARGV);
my $test = WidgetsCalculator();
unshift @ARGV, $0;
return Qt::Test::qExec($test, scalar @ARGV, \@ARGV);
}
exit main();
|