Skip to content

Commit 01dc027

Browse files
committed
Add testing code
1 parent e2ab898 commit 01dc027

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

filescanner-gtk-linux-x86_64/shared-src/test/java/de/carne/filescanner/test/FileScannerMainTest.java

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import java.util.Properties;
2828

2929
import org.eclipse.swt.widgets.ProgressBar;
30+
import org.eclipse.swt.widgets.Tree;
31+
import org.eclipse.swt.widgets.TreeItem;
3032
import org.junit.jupiter.api.Assertions;
3133
import org.junit.jupiter.api.BeforeAll;
3234
import org.junit.jupiter.api.Test;
@@ -36,8 +38,10 @@
3638
import de.carne.swt.platform.PlatformIntegration;
3739
import de.carne.test.swt.DisableIfThreadNotSWTCapable;
3840
import de.carne.test.swt.tester.SWTTest;
41+
import de.carne.test.swt.tester.accessor.ButtonAccessor;
3942
import de.carne.test.swt.tester.accessor.ControlAccessor;
4043
import de.carne.test.swt.tester.accessor.ItemAccessor;
44+
import de.carne.test.swt.tester.accessor.ShellAccessor;
4145

4246
/**
4347
* Test {@link FileScannerMain} class.
@@ -55,7 +59,9 @@ void testFileScanner() {
5559
Script script = script(Application::run).args("--debug");
5660

5761
script.add(this::doOpenFile);
58-
script.add(this::waitScanFinished, this::doVerifyScanResult, 60 * 1000);
62+
script.add(this::waitScanFinished, this::doVerifyScanResult, 60 * 1000l);
63+
script.add(this::doOpenExport, true);
64+
script.add(() -> accessShell("Export scan result"), this::doVerifyExport, 60 * 1000l);
5965
script.add(this::doClose);
6066
script.execute();
6167
}
@@ -73,7 +79,7 @@ private void doOpenFile() {
7379

7480
private ControlAccessor<ProgressBar> waitScanFinished() {
7581
ControlAccessor<ProgressBar> progressBarAccessor = accessShell().accessChild(ControlAccessor::wrapControl,
76-
ProgressBar.class, (control) -> true);
82+
ProgressBar.class, control -> true);
7783
Optional<? extends ProgressBar> optionalProgressBar = progressBarAccessor.getOptional();
7884

7985
return (optionalProgressBar.isPresent() && isProgressBarMaxedOut(optionalProgressBar.get())
@@ -85,8 +91,32 @@ private boolean isProgressBarMaxedOut(ProgressBar progressBar) {
8591
return progressBar.getSelection() >= progressBar.getMaximum();
8692
}
8793

94+
private static final String ZIP_ARCHIVE_RESULT_NAME = "ZIP archive";
95+
8896
private void doVerifyScanResult(ControlAccessor<ProgressBar> progressBar) {
97+
Tree resultView = accessShell().accessChild(ControlAccessor::wrapControl, Tree.class, control -> true).get();
98+
99+
TreeItem rootItem = resultView.getItem(0);
100+
101+
Assertions.assertNotNull(rootItem);
102+
Assertions.assertTrue(rootItem.getExpanded());
103+
Assertions.assertTrue(rootItem.getItemCount() == 1);
104+
105+
TreeItem zipArchiveItem = rootItem.getItem(0);
106+
107+
Assertions.assertEquals(ZIP_ARCHIVE_RESULT_NAME, zipArchiveItem.getText());
108+
109+
resultView.setSelection(zipArchiveItem);
110+
}
111+
112+
private void doOpenExport() {
113+
traceAction();
114+
115+
accessShell().accessMenuBar().accessMenuItem(ItemAccessor.matchText("&Export\u2026")).select();
116+
}
89117

118+
private void doVerifyExport(ShellAccessor exportDialog) {
119+
exportDialog.accessButton(ButtonAccessor.matchText("Cancel")).select();
90120
}
91121

92122
private void doClose() {

0 commit comments

Comments
 (0)