aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/main/java/com/vaadin/tests/components/browserframe/BrowserFrameIsVisible.java
blob: 4274d446fe7a954a49147afc45d9db9e3c63368f (plain)
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
package com.vaadin.tests.components.browserframe;

import static java.nio.charset.StandardCharsets.UTF_8;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import com.vaadin.server.StreamResource;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.BrowserFrame;
import com.vaadin.ui.Button;
import com.vaadin.ui.HorizontalLayout;

public class BrowserFrameIsVisible extends TestBase {

    @Override
    protected void setup() {

        HorizontalLayout buttonLayout = new HorizontalLayout();
        buttonLayout.setSpacing(false);
        addComponent(buttonLayout);

        Button page1 = new Button("Hello World");
        buttonLayout.addComponent(page1);

        Button page2 = new Button("Lorem ipsum");
        buttonLayout.addComponent(page2);

        Button page3 = new Button("null");
        buttonLayout.addComponent(page3);

        final BrowserFrame browser = new BrowserFrame();
        browser.setId("browser");
        browser.setWidth("600px");
        browser.setHeight("300px");
        browser.setAlternateText("Browser alternative text");
        final TextSource textSource = new TextSource("initial");
        final StreamResource textResource = new StreamResource(textSource,
                "initial.txt");
        textResource.setMIMEType("text/plain");
        browser.setSource(textResource);
        addComponent(browser);

        page1.addClickListener(event -> {
            TextSource helloSource = new TextSource("Hello World");
            StreamResource helloResource = new StreamResource(helloSource,
                    "helloworld.txt");
            helloResource.setMIMEType("text/plain");
            browser.setSource(helloResource);
        });

        page2.addClickListener(event -> {
            TextSource helloSource = new TextSource("Lorem Ipsum");
            StreamResource helloResource = new StreamResource(helloSource,
                    "loremipsum.txt");
            helloResource.setMIMEType("text/plain");
            browser.setSource(helloResource);
        });

        page3.addClickListener(event -> browser.setSource(null));
    }

    @Override
    protected String getDescription() {
        return "Embedded browser should be visible for all browsers";
    }

    @Override
    protected Integer getTicketNumber() {
        return null;
    }

    public class TextSource implements StreamResource.StreamSource {
        private String text;

        public TextSource(String text) {
            this.text = text;
        }

        @Override
        public InputStream getStream() {

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 200; ++i) {
                sb.append(text);
                sb.append("\n");
            }

            return new ByteArrayInputStream(sb.toString().getBytes(UTF_8));
        }
    }

}