use of com.github.mvysny.kaributesting.v8.LocatorJ._get in project ANNIS by korpling.
the class AnnisUITest method tokenSearchPcc2.
@Test
void tokenSearchPcc2() throws Exception {
executeTokenSearch("pcc2", 399, 2);
// 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("Feigenblatt", "Die", "Jugendlichen", "in", "Zossen", "wollen"), tokens.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList()));
// Check the annotation values are shown
ArrayList<Row> lemmaRows = kwicGrid.getRowsByAnnotation().get("tiger::lemma");
assertEquals(1, lemmaRows.size());
assertEquals(Arrays.asList("Feigenblatt", "der", "jugendliche", "in", "Zossen", "wollen"), lemmaRows.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList()));
ArrayList<Row> posRows = kwicGrid.getRowsByAnnotation().get("tiger::pos");
assertEquals(1, posRows.size());
assertEquals(Arrays.asList("NN", "ART", "NN", "APPR", "NE", "VMFIN"), posRows.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList()));
// Test that we can show the first metadata for the button
List<Button> infoButtons = _find(Button.class, spec -> spec.withPredicate(b -> "Show metadata".equals(b.getDescription())));
assertEquals(10, infoButtons.size());
_click(infoButtons.get(0));
Window infoWindow = _get(Window.class);
assertEquals("Info for salt:/pcc2/11299", infoWindow.getCaption());
awaitCondition(30, () -> !_find(infoWindow, Accordion.class).isEmpty());
Accordion metaAccordion = _get(infoWindow, Accordion.class);
@SuppressWarnings("rawtypes") List<Grid> metadataGrids = _find(metaAccordion, Grid.class);
assertEquals(2, metadataGrids.size());
assertEquals("11299 (document)", metaAccordion.getTab(metadataGrids.get(0)).getCaption());
assertEquals("pcc2 (corpus)", metaAccordion.getTab(metadataGrids.get(1)).getCaption());
@SuppressWarnings("unchecked") Annotation firstAnno = (Annotation) GridKt._get(metadataGrids.get(0), 0);
assertEquals("Dokumentname", firstAnno.getKey().getName());
assertEquals("pcc-11299", firstAnno.getVal());
@SuppressWarnings("unchecked") Annotation secondAnno = (Annotation) GridKt._get(metadataGrids.get(0), 1);
assertEquals("Genre", secondAnno.getKey().getName());
assertEquals("Politik", secondAnno.getVal());
@SuppressWarnings("unchecked") Annotation thirdAnno = (Annotation) GridKt._get(metadataGrids.get(0), 2);
assertEquals("Titel", thirdAnno.getKey().getName());
assertEquals("Feigenblatt", thirdAnno.getVal());
// Disable the part-of-speech token annotation display
TreeSet<String> visibleAnnos = new TreeSet<>(Arrays.asList("tiger::lemma"));
resultPanel.setVisibleTokenAnnosVisible(visibleAnnos);
assertNull(kwicGrid.getRowsByAnnotation().get("tiger:pos"));
assertNotNull(kwicGrid.getRowsByAnnotation().get("tiger::lemma"));
// Change the context and test that the KWIC displayed also changed
resultPanel.changeContext(1, 6, false);
// Since the action will replace the whole result panel, we have to get all
// variables again.
List<String> expectedTokens = Arrays.asList("Feigenblatt", "Die", "Jugendlichen", "in", "Zossen", "wollen", "ein");
awaitCondition(10, () -> {
List<SingleResultPanel> allResults = _find(SingleResultPanel.class);
if (allResults.isEmpty()) {
return false;
}
List<AnnotationGrid> annoGrids = _find(allResults.get(0), AnnotationGrid.class);
if (annoGrids.isEmpty()) {
return false;
}
ArrayList<Row> tokensUpdatedContext = annoGrids.get(0).getRowsByAnnotation().get("tok");
if (tokensUpdatedContext.isEmpty()) {
return false;
}
List<String> actualTokens = tokensUpdatedContext.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList());
return expectedTokens.equals(actualTokens);
});
}
use of com.github.mvysny.kaributesting.v8.LocatorJ._get in project ANNIS by korpling.
the class AnnisUITest method tokenSearchDialog.
@Test
void tokenSearchDialog() throws Exception {
executeTokenSearch("dialog.demo", 102, 1);
// Test that there is a grid visualizer
SingleResultPanel resultPanel = _find(SingleResultPanel.class).get(0);
GridComponent gridVis = _get(resultPanel, GridComponent.class, spec -> spec.withPredicate(g -> !(g instanceof KWICComponent)));
AnnotationGrid annoGrid = _get(gridVis, AnnotationGrid.class);
ArrayList<Row> tokens = annoGrid.getRowsByAnnotation().get("default_ns::norm0");
assertEquals(1, tokens.size());
assertEquals(Arrays.asList("äh", "fang", "einfach", "mal", "an"), tokens.get(0).getEvents().stream().map(GridEvent::getValue).collect(Collectors.toList()));
// Open the video visualizer and check that media component is loaded
Button btOpenVisualizer = _get(resultPanel, Button.class, spec -> spec.withCaption("video"));
_click(btOpenVisualizer);
awaitCondition(120, () -> !_find(resultPanel, MediaElementPlayer.class).isEmpty());
MediaElementPlayer player = _get(resultPanel, MediaElementPlayer.class, spec -> spec.withCount(1));
assertEquals("video/webm", player.getState().getMimeType());
assertEquals("/Binary?file=dialog.demo%2Fdialog.demo%2Fdialog.demo.webm&toplevelCorpusName=dialog.demo", player.getState().getResourceURL());
// Close the visualizer again
_click(btOpenVisualizer);
awaitCondition(120, () -> _find(resultPanel, MediaElementPlayer.class).isEmpty());
}
use of com.github.mvysny.kaributesting.v8.LocatorJ._get in project ANNIS by korpling.
the class EmbeddedVisTest method showRawText.
@Test
void showRawText() throws Exception {
EmbeddedVisUI ui = (EmbeddedVisUI) UI.getCurrent();
MockRequest request = MockVaadinKt.getMock(VaadinRequest.getCurrent());
request.setParameter("embedded_match", "pcc2/11299#tok_1");
request.setParameter("embedded_fulltext", "");
ui.attachToPath("/embeddedvis/raw_text", VaadinRequest.getCurrent());
awaitCondition(60, () -> !_find(Label.class, spec -> spec.withPredicate(l -> "raw_text_label".equals(l.getStyleName()))).isEmpty());
Label labelRawText = _get(Label.class, spec -> spec.withPredicate(l -> "raw_text_label".equals(l.getStyleName())));
assertTrue(labelRawText.getValue().startsWith("Feigenblatt Die Jugendlichen in Zossen wollen ein Musikcafé ."));
assertTrue(labelRawText.getValue().endsWith("Die glänzten diesmal noch mit Abwesenheit ."));
}
use of com.github.mvysny.kaributesting.v8.LocatorJ._get in project ANNIS by korpling.
the class EmbeddedVisTest method unknownRemoteSaltVisualizer.
/**
* Make sure there is an error message when an unknown visualizer is requested.
*
* @throws Exception
*/
@Test
void unknownRemoteSaltVisualizer() throws Exception {
EmbeddedVisUI ui = (EmbeddedVisUI) UI.getCurrent();
MockRequest request = MockVaadinKt.getMock(VaadinRequest.getCurrent());
request.setParameter("embedded_salt", "http://example.com/does-not-exist.salt");
ui.attachToPath("/embeddedvis/notavisualizer", VaadinRequest.getCurrent());
awaitCondition(60, () -> !_find(Label.class, spec -> spec.withPredicate(l -> l.getContentMode() == ContentMode.HTML && l.getValue().startsWith("<h1>"))).isEmpty());
Label labelMessage = _get(Label.class);
assertEquals("<h1>Unknown visualizer \"notavisualizer\"</h1><div>This ANNIS instance does not know the given visualizer.</div>", labelMessage.getValue());
}
use of com.github.mvysny.kaributesting.v8.LocatorJ._get in project ANNIS by korpling.
the class EmbeddedVisTest method invalidRemoteSaltUrlScheme.
@Test
void invalidRemoteSaltUrlScheme() throws Exception {
EmbeddedVisUI ui = (EmbeddedVisUI) UI.getCurrent();
MockRequest request = MockVaadinKt.getMock(VaadinRequest.getCurrent());
request.setParameter("embedded_salt", "file://example.com/does-not-exist.salt");
ui.attachToPath("/embeddedvis/raw_text", VaadinRequest.getCurrent());
awaitCondition(60, () -> !_find(Label.class, spec -> spec.withPredicate(l -> l.getContentMode() == ContentMode.HTML && l.getValue().startsWith("<h1>"))).isEmpty());
Label labelMessage = _get(Label.class);
assertEquals("<h1>Could not generate the visualization.</h1><div>Expected URL scheme 'http' or 'https' but was 'file'</div>", labelMessage.getValue());
}
Aggregations