123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- /*
- * Copyright 2000-2016 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
- package com.vaadin.tests.server.component.button;
-
- import org.jsoup.nodes.Element;
- import org.jsoup.parser.Tag;
- import org.junit.Test;
-
- import com.vaadin.event.ShortcutAction.KeyCode;
- import com.vaadin.event.ShortcutAction.ModifierKey;
- import com.vaadin.tests.design.DeclarativeTestBase;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.NativeButton;
- import com.vaadin.ui.declarative.DesignContext;
-
- /**
- * Tests declarative support for implementations of {@link Button} and
- * {@link NativeButton}.
- *
- * @since 7.4
- * @author Vaadin Ltd
- */
- public class ButtonDeclarativeTest extends DeclarativeTestBase<Button> {
-
- @Test
- public void testEmptyPlainText() {
- String design = "<vaadin-button plain-text></vaadin-button>";
- testButtonAndNativeButton(design, false, "");
- }
-
- @Test
- public void testPlainTextCaption() {
- String design = "<vaadin-button plain-text>Click</vaadin-button>";
- testButtonAndNativeButton(design, false, "Click");
- }
-
- @Test
- public void testEmptyHtml() {
- String design = "<vaadin-button />";
- testButtonAndNativeButton(design, true, "");
- }
-
- @Test
- public void testHtmlCaption() {
- String design = "<vaadin-button><b>Click</b></vaadin-button>";
- testButtonAndNativeButton(design, true, "<b>Click</b>");
- }
-
- @Test
- public void testWithCaptionAttribute() {
- // The caption attribute should be ignored
- String design = "<vaadin-button caption=Caption>Click</vaadin-button>";
- String expectedWritten = "<vaadin-button>Click</vaadin-button>";
- testButtonAndNativeButton(design, true, "Click", expectedWritten);
- }
-
- @Test
- public void testWithOnlyCaptionAttribute() {
- String design = "<vaadin-button caption=Click/>";
- String expectedWritten = "<vaadin-button/>";
- testButtonAndNativeButton(design, true, "", expectedWritten);
- }
-
- @Test
- public void testHtmlEntitiesInCaption() {
- String designPlainText = "<vaadin-button plain-text=\"true\">> One</vaadin-button>";
- String expectedCaptionPlainText = "> One";
-
- Button read = read(designPlainText);
- assertEquals(expectedCaptionPlainText, read.getCaption());
-
- designPlainText = designPlainText.replace("vaadin-button",
- "vaadin-native-button");
- Button nativeButton = read(designPlainText);
- assertEquals(expectedCaptionPlainText,
- nativeButton.getCaption());
-
- String designHtml = "<vaadin-button>> One</vaadin-button>";
- String expectedCaptionHtml = "> One";
- read = read(designHtml);
- assertEquals(expectedCaptionHtml, read.getCaption());
-
- designHtml = designHtml.replace("vaadin-button",
- "vaadin-native-button");
- nativeButton = read(designHtml);
- assertEquals(expectedCaptionHtml, nativeButton.getCaption());
-
- read = new Button("& Test");
- read.setCaptionAsHtml(true);
- Element root = new Element(Tag.valueOf("vaadin-button"), "");
- read.writeDesign(root, new DesignContext());
- assertEquals("& Test", root.html());
-
- read.setCaptionAsHtml(false);
- root = new Element(Tag.valueOf("vaadin-button"), "");
- read.writeDesign(root, new DesignContext());
- assertEquals("&amp; Test", root.html());
-
- }
-
- public void testButtonAndNativeButton(String design, boolean html,
- String caption) {
- testButtonAndNativeButton(design, html, caption, design);
- }
-
- public void testButtonAndNativeButton(String design, boolean html,
- String caption, String expectedWritten) {
- // Test Button
- Button b = new Button();
- b.setCaptionAsHtml(html);
- b.setCaption(caption);
- testRead(expectedWritten, b);
- testWrite(expectedWritten, b);
- // Test NativeButton
- design = design.replace("vaadin-button", "vaadin-native-button");
- expectedWritten = expectedWritten.replace("vaadin-button",
- "vaadin-native-button");
- NativeButton nb = new NativeButton();
- nb.setCaptionAsHtml(html);
- nb.setCaption(caption);
- testRead(expectedWritten, nb);
- testWrite(expectedWritten, nb);
- }
-
- @Test
- public void testAttributes() {
- String design = "<vaadin-button tabindex=3 plain-text icon-alt=OK "
- + "click-shortcut=shift-ctrl-o></vaadin-button>";
- Button b = new Button("");
- b.setTabIndex(3);
- b.setIconAlternateText("OK");
- b.setClickShortcut(KeyCode.O, ModifierKey.CTRL, ModifierKey.SHIFT);
- testRead(design, b);
- testWrite(design, b);
- }
- }
|