aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin/tests/components/select/NativeSelects.java
blob: 75a3f1b751ef41c21b2307a99e2bb3cd33df7918 (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package com.vaadin.tests.components.select;

import java.util.List;

import com.vaadin.tests.components.ComponentTestCase;
import com.vaadin.ui.Component;
import com.vaadin.ui.NativeSelect;

public class NativeSelects extends ComponentTestCase<NativeSelect> {

    NativeSelect label[] = new NativeSelect[20];

    @Override
    protected Class<NativeSelect> getTestClass() {
        return NativeSelect.class;
    }

    @Override
    protected void initializeComponents() {

        NativeSelect s;

        s = createNativeSelect(null);
        s.setWidth(null);
        addTestComponent(s);

        s = createNativeSelect("Undefined wide, empty select");
        s.setWidth(null);
        addTestComponent(s);

        s = createNativeSelect("Undefined wide select with 5 items");
        s.setWidth(null);
        addItem(s, "The first item");
        addItem(s, "The second item");
        addItem(s, "The third item");
        addItem(s, "The fourth item");
        addItem(s, "The fifth item");
        addTestComponent(s);

        s = createNativeSelect("Undefined wide select with 50 items");
        s.setWidth(null);
        populate(s, 50);
        addTestComponent(s);

        s = createNativeSelect(null);
        s.setWidth("100px");
        addTestComponent(s);

        s = createNativeSelect("100px wide, empty select");
        s.setWidth("100px");
        addTestComponent(s);

        s = createNativeSelect("150px wide select with 5 items");
        s.setWidth("150px");
        addItem(s, "The first item");
        addItem(s, "The second item");
        addItem(s, "The third item");
        addItem(s, "The fourth item");
        addItem(s, "The fifth item");
        addTestComponent(s);

        s = createNativeSelect("200px wide select with 50 items");
        s.setWidth("200px");
        populate(s, 50);
        addTestComponent(s);

    }

    private void populate(NativeSelect s, int nr) {
        String text = " an item ";

        String caption = "";
        for (int i = 0; i < nr; i++) {
            if (i % 2 == 0) {
                caption += text;
            } else {
                caption += i;
            }

            addItem(s, caption);
        }

    }

    private void addItem(NativeSelect s, String string) {
        Object id = s.addItem();
        s.getItem(id).getItemProperty(CAPTION).setValue(string);

    }

    private NativeSelect createNativeSelect(String caption) {
        NativeSelect s = new NativeSelect();

        s.addContainerProperty(CAPTION, String.class, "");
        s.setItemCaptionPropertyId(CAPTION);
        s.setCaption(caption);
        s.setNullSelectionAllowed(false);
        return s;
    }

    @Override
    protected String getDescription() {
        return "A generic test for Labels in different configurations";
    }

    @Override
    protected void createCustomActions(List<Component> actions) {
        actions.add(createBooleanAction("Null selection allowed", false,
                new Command<NativeSelect, Boolean>() {

                    @Override
                    public void execute(NativeSelect c, Boolean value,
                            Object data) {
                        c.setNullSelectionAllowed(value);
                    }
                }));
    }

}