use of com.github.mvysny.kaributesting.v8.LocatorJ._find in project ANNIS by korpling.
the class FlatQueryBuilderTest method removeBoxes.
@Test
void removeBoxes() {
initQueryBuilder(0);
// Add a token and two meta data boxes
queryBuilder.addLinguisticSequenceBox("tok");
queryBuilder.addMetaBox("Titel");
queryBuilder.addMetaBox("Genre");
List<VerticalNode> verticalBoxes = _find(VerticalNode.class);
assertEquals(1, verticalBoxes.size());
List<MetaBox> metaBoxes = _find(MetaBox.class);
assertEquals(2, metaBoxes.size());
// Check that the added meta data values have been made invisible in the menu
List<MenuBar> menus = _find(queryBuilder, MenuBar.class);
assertEquals(4, menus.size());
assertEquals(1, menus.get(3).getItems().size());
assertEquals("Add", menus.get(3).getItems().get(0).getText());
for (MenuItem item : menus.get(3).getItems().get(0).getChildren()) {
if ("Titel".equals(item.getText()) || "Genre".equals(item.getText())) {
assertFalse(item.isVisible());
} else {
assertTrue(item.isVisible());
}
}
// Remove these boxes again using the "X" button
_click(_get(metaBoxes.get(0), Button.class, spec -> spec.withCaption("X")));
_click(_get(metaBoxes.get(1), Button.class, spec -> spec.withCaption("X")));
List<Button> closeButtons = _find(verticalBoxes.get(0), Button.class, spec -> spec.withCaption("X"));
// There are two buttons, one for the inner search box and one for the enclosing vertical box
assertEquals(2, closeButtons.size());
_click(closeButtons.get(1));
_click(closeButtons.get(0));
assertEquals(0, _find(VerticalNode.class).size());
assertEquals(0, _find(MetaBox.class).size());
}
use of com.github.mvysny.kaributesting.v8.LocatorJ._find in project ANNIS by korpling.
the class FlatQueryBuilderTest method twoTokenInSentence.
@Test
void twoTokenInSentence() throws InterruptedException {
initQueryBuilder(0);
// Add a two tokens
queryBuilder.addLinguisticSequenceBox("tok");
queryBuilder.addLinguisticSequenceBox("tok");
List<SearchBox> searchBoxes = _find(queryBuilder, SearchBox.class);
assertEquals(2, searchBoxes.size());
_get(searchBoxes.get(0), ComboBox.class).setValue("Feigenblatt");
_get(searchBoxes.get(1), ComboBox.class).setValue("Die");
// Add a scope
queryBuilder.addSpanBox("Sent");
SpanBox spanBox = _get(queryBuilder, SpanBox.class);
_get(spanBox, ComboBox.class).setValue("s");
// Create the AQL query
_click(_get(queryBuilder, Button.class, spec -> spec.withCaption("Create AQL Query")));
assertEquals("tok=/Feigenblatt/ & tok=/Die/\n& Sent = \"s\"\n& #1 . #2\n" + "& #3_i_#1\n" + "& #3_i_#2", ui.getQueryState().getAql().getValue());
}
use of com.github.mvysny.kaributesting.v8.LocatorJ._find in project ANNIS by korpling.
the class AnnisUITest method searchPccDocumentMatches.
@Test
void searchPccDocumentMatches() throws Exception {
selectCorpus("pcc2");
// Set the query and submit query
_get(AqlCodeEditor.class).getPropertyDataSource().setValue("Genre");
MockVaadin.INSTANCE.clientRoundtrip();
awaitCondition(5, () -> "Genre".equals(ui.getQueryState().getAql().getValue()));
awaitCondition(5, () -> "Valid query, click on \"Search\" to start searching.".equals(ui.getSearchView().getControlPanel().getQueryPanel().getLastPublicStatus()));
Button searchButton = _get(Button.class, spec -> spec.withCaption("Search"));
_click(searchButton);
// Wait until the count is displayed
String expectedStatus = "2 matches\nin 2 documents";
awaitCondition(60, () -> expectedStatus.equals(ui.getSearchView().getControlPanel().getQueryPanel().getLastPublicStatus()), () -> "Waited for status \"" + expectedStatus + "\" but was \"" + ui.getSearchView().getControlPanel().getQueryPanel().getLastPublicStatus() + "\"");
// Test that the special corpus result panel visualizer is shown
awaitCondition(30, () -> _find(SingleCorpusResultPanel.class).size() == 2);
List<SingleCorpusResultPanel> results = _find(SingleCorpusResultPanel.class);
assertNotNull(_get(results.get(0), Label.class, spec -> spec.withValue("Path: pcc2 > 11299")));
assertNotNull(_get(results.get(0), Button.class, spec -> spec.withPredicate(b -> b.getIcon() == VaadinIcons.INFO_CIRCLE)));
// The standard SingleResult panel should not be visible
assertEquals(0, _find(SingleResultPanel.class).size());
}
use of com.github.mvysny.kaributesting.v8.LocatorJ._find in project ANNIS by korpling.
the class AnnisUITest method showDocumentRawText.
@Test
void showDocumentRawText() throws Exception {
UI.getCurrent().getNavigator().navigateTo("");
ui.getSearchView().getDocBrowserController().openDocBrowser("pcc2");
DocBrowserPanel panel = _get(DocBrowserPanel.class);
awaitCondition(120, () -> !_find(panel, DocBrowserTable.class).isEmpty());
DocBrowserTable docBrowserTable = _get(panel, DocBrowserTable.class);
List<Button> fullTextButtons = _find(docBrowserTable, Button.class, spec -> spec.withCaption("full text"));
assertEquals(2, fullTextButtons.size());
// Filter by the document name to reduce the number of buttons we can press
TextField textFilter = _get(panel, TextField.class);
_setValue(textFilter, "11299");
// Wait until filter is applied
awaitCondition(30, () -> _find(docBrowserTable, Button.class, spec -> spec.withCaption("full text")).size() == 1);
// Click on the button to open the full text visualization for the first document
_click(_get(docBrowserTable, Button.class, spec -> spec.withCaption("full text")));
Component rawTextPanel = ui.getSearchView().getTabSheet().getSelectedTab();
Tab selectedTab = ui.getSearchView().getTabSheet().getTab(rawTextPanel);
assertEquals("pcc2 > 11299 - ...", selectedTab.getCaption());
// Wait for label to appear
awaitCondition(20, () -> !_find(rawTextPanel, Label.class).isEmpty());
Label rawTextLabel = _get(rawTextPanel, Label.class);
assertTrue(rawTextLabel.getValue().startsWith("Feigenblatt Die Jugendlichen in Zossen wollen ein Musikcafé ."));
assertTrue(rawTextLabel.getValue().endsWith("Die glänzten diesmal noch mit Abwesenheit ."));
}
use of com.github.mvysny.kaributesting.v8.LocatorJ._find in project ANNIS by korpling.
the class AnnisUITest method searchPcc2InverseOrder.
@Test
void searchPcc2InverseOrder() throws Exception {
selectCorpus("pcc2");
// Set inverse order in search options
TabSheet optionTabSheet = _get(_get(ControlPanel.class), TabSheet.class);
optionTabSheet.setSelectedTab(_get(SearchOptionsPanel.class));
awaitCondition(10, () -> !_find(optionTabSheet, ComboBox.class, spec -> spec.withCaption("Order")).isEmpty());
@SuppressWarnings("unchecked") ComboBox<OrderEnum> orderComboBox = _get(optionTabSheet, ComboBox.class, spec -> spec.withCaption("Order"));
_setValue(orderComboBox, OrderEnum.INVERTED);
// Set the query and submit query
_get(AqlCodeEditor.class).getPropertyDataSource().setValue("\"Die\"");
MockVaadin.INSTANCE.clientRoundtrip();
awaitCondition(5, () -> "\"Die\"".equals(ui.getQueryState().getAql().getValue()));
awaitCondition(5, () -> "Valid query, click on \"Search\" to start searching.".equals(ui.getSearchView().getControlPanel().getQueryPanel().getLastPublicStatus()));
Button searchButton = _get(Button.class, spec -> spec.withCaption("Search"));
_click(searchButton);
// Wait until the count is displayed
String expectedStatus = "4 matches\nin 2 documents";
awaitCondition(60, () -> expectedStatus.equals(ui.getSearchView().getControlPanel().getQueryPanel().getLastPublicStatus()), () -> "Waited for status \"" + expectedStatus + "\" but was \"" + ui.getSearchView().getControlPanel().getQueryPanel().getLastPublicStatus() + "\"");
ResultViewPanel resultView = _get(ResultViewPanel.class);
awaitCondition(30, () -> _find(resultView, SingleResultPanel.class).size() == 4);
// Test that the cell values have the correct token value
SingleResultPanel resultPanel = _find(SingleResultPanel.class).get(0);
KWICComponent kwicVis = _get(resultPanel, KWICComponent.class);
AnnotationGrid kwicGrid = _get(kwicVis, AnnotationGrid.class);
ArrayList<Row> tokens = kwicGrid.getRowsByAnnotation().get("tok");
assertEquals(1, tokens.size());
assertEquals(Arrays.asList("fürs", "Dallgower", "Tor", "gab", ".", "Die", "Seeburger", "und", "einige", "Groß-Glienicker", "haben"), tokens.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList()));
}
Aggregations