You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TestSynchronizeFromDesign.java 6.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. /*
  2. * Copyright 2000-2014 Vaadin Ltd.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy of
  6. * the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations under
  14. * the License.
  15. */
  16. package com.vaadin.tests.server.component.abstractcomponent;
  17. import junit.framework.TestCase;
  18. import org.jsoup.nodes.Attributes;
  19. import org.jsoup.nodes.Element;
  20. import org.jsoup.nodes.Node;
  21. import org.jsoup.parser.Tag;
  22. import com.vaadin.server.ExternalResource;
  23. import com.vaadin.server.FileResource;
  24. import com.vaadin.server.ThemeResource;
  25. import com.vaadin.ui.AbstractComponent;
  26. import com.vaadin.ui.Label;
  27. import com.vaadin.ui.declarative.DesignContext;
  28. /**
  29. * Test case for the properties of the abstract component
  30. *
  31. * @since
  32. * @author Vaadin Ltd
  33. */
  34. public class TestSynchronizeFromDesign extends TestCase {
  35. private DesignContext ctx;
  36. @Override
  37. protected void setUp() throws Exception {
  38. super.setUp();
  39. ctx = new DesignContext();
  40. }
  41. public void testSynchronizeId() {
  42. Node design = createDesign("id", "testId");
  43. AbstractComponent component = getComponent();
  44. component.synchronizeFromDesign(design, ctx);
  45. assertEquals("testId", component.getId());
  46. }
  47. public void testSynchronizePrimaryStyleName() {
  48. Node design = createDesign("primary-style-name", "test-style");
  49. AbstractComponent component = getComponent();
  50. component.synchronizeFromDesign(design, ctx);
  51. assertEquals("test-style", component.getPrimaryStyleName());
  52. }
  53. public void testSynchronizeCaption() {
  54. Node design = createDesign("caption", "test-caption");
  55. AbstractComponent component = getComponent();
  56. component.synchronizeFromDesign(design, ctx);
  57. assertEquals("test-caption", component.getCaption());
  58. }
  59. public void testSynchronizeLocale() {
  60. Node design = createDesign("locale", "fi");
  61. AbstractComponent component = getComponent();
  62. component.synchronizeFromDesign(design, ctx);
  63. assertEquals("fi", component.getLocale().getLanguage());
  64. }
  65. public void testSynchronizeExternalIcon() {
  66. Node design = createDesign("icon", "http://example.com/example.gif");
  67. AbstractComponent component = getComponent();
  68. component.synchronizeFromDesign(design, ctx);
  69. assertTrue("Incorrect resource type returned", component.getIcon()
  70. .getClass().isAssignableFrom(ExternalResource.class));
  71. }
  72. public void testSynchronizeThemeIcon() {
  73. Node design = createDesign("icon", "theme://example.gif");
  74. AbstractComponent component = getComponent();
  75. component.synchronizeFromDesign(design, ctx);
  76. assertTrue("Incorrect resource type returned", component.getIcon()
  77. .getClass().isAssignableFrom(ThemeResource.class));
  78. }
  79. public void testSynchronizeFileResource() {
  80. Node design = createDesign("icon", "img/example.gif");
  81. AbstractComponent component = getComponent();
  82. component.synchronizeFromDesign(design, ctx);
  83. assertTrue("Incorrect resource type returned", component.getIcon()
  84. .getClass().isAssignableFrom(FileResource.class));
  85. }
  86. public void testSynchronizeImmediate() {
  87. Node design = createDesign("immediate", "true");
  88. AbstractComponent component = getComponent();
  89. component.synchronizeFromDesign(design, ctx);
  90. assertEquals(true, component.isImmediate());
  91. }
  92. public void testSynchronizeDescription() {
  93. Node design = createDesign("description", "test-description");
  94. AbstractComponent component = getComponent();
  95. component.synchronizeFromDesign(design, ctx);
  96. assertEquals("test-description", component.getDescription());
  97. }
  98. public void testSynchronizeSizeFull() {
  99. Node design = createDesign("size-full", "");
  100. AbstractComponent component = getComponent();
  101. component.synchronizeFromDesign(design, ctx);
  102. assertEquals(100, component.getWidth(), 0.1f);
  103. assertEquals(100, component.getHeight(), 0.1f);
  104. }
  105. public void testSynchronizeSizeAuto() {
  106. Node design = createDesign("size-auto", "");
  107. AbstractComponent component = getComponent();
  108. component.synchronizeFromDesign(design, ctx);
  109. assertEquals(-1, component.getWidth(), 0.1f);
  110. assertEquals(-1, component.getHeight(), 0.1f);
  111. }
  112. public void testSynchronizeHeightFull() {
  113. Node design = createDesign("height-full", "");
  114. AbstractComponent component = getComponent();
  115. component.synchronizeFromDesign(design, ctx);
  116. assertEquals(100, component.getHeight(), 0.1f);
  117. }
  118. public void testSynchronizeHeightAuto() {
  119. Node design = createDesign("height-auto", "");
  120. AbstractComponent component = getComponent();
  121. component.synchronizeFromDesign(design, ctx);
  122. assertEquals(-1, component.getHeight(), 0.1f);
  123. }
  124. public void testSynchronizeWidthFull() {
  125. Node design = createDesign("width-full", "");
  126. AbstractComponent component = getComponent();
  127. component.synchronizeFromDesign(design, ctx);
  128. assertEquals(100, component.getWidth(), 0.1f);
  129. }
  130. public void testSynchronizeWidthAuto() {
  131. Node design = createDesign("width-auto", "");
  132. AbstractComponent component = getComponent();
  133. component.synchronizeFromDesign(design, ctx);
  134. assertEquals(-1, component.getWidth(), 0.1f);
  135. }
  136. public void testSynchronizeWidth() {
  137. Node design = createDesign("width", "12px");
  138. AbstractComponent component = getComponent();
  139. component.synchronizeFromDesign(design, ctx);
  140. assertEquals(12, component.getWidth(), 0.1f);
  141. assertEquals(com.vaadin.server.Sizeable.Unit.PIXELS,
  142. component.getWidthUnits());
  143. }
  144. public void testSynchronizeHeight() {
  145. Node design = createDesign("height", "12px");
  146. AbstractComponent component = getComponent();
  147. component.synchronizeFromDesign(design, ctx);
  148. assertEquals(12, component.getHeight(), 0.1f);
  149. assertEquals(com.vaadin.server.Sizeable.Unit.PIXELS,
  150. component.getHeightUnits());
  151. }
  152. private AbstractComponent getComponent() {
  153. return new Label();
  154. }
  155. private Node createDesign(String key, String value) {
  156. Attributes attributes = new Attributes();
  157. attributes.put(key, value);
  158. Element node = new Element(Tag.valueOf("v-label"), "", attributes);
  159. return node;
  160. }
  161. }