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.

CssLayoutRemoveComponentTest.java 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Copyright 2000-2016 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.layouts;
  17. import static org.junit.Assert.assertEquals;
  18. import org.junit.Test;
  19. import com.vaadin.testbench.elements.ButtonElement;
  20. import com.vaadin.testbench.elements.TextFieldElement;
  21. import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
  22. public class CssLayoutRemoveComponentTest extends SingleBrowserTestPhantomJS2 {
  23. @Test
  24. public void testRemoveOnlyNecessaryComponentsFromDom() {
  25. openTestURL();
  26. String script = "document.mutationEventCount = 0;"
  27. + "var observer = new MutationObserver(function(mutations) {"
  28. + "mutations.forEach(function(mutation) { document.mutationEventCount += mutation.removedNodes.length; });"
  29. + "});"
  30. + "observer.observe(arguments[0].parentNode, { childList: true });";
  31. executeScript(script,
  32. $(TextFieldElement.class).caption("Caption1").first());
  33. $(ButtonElement.class).first().click();
  34. Long mutationEvents = (Long) executeScript(
  35. "return document.mutationEventCount;");
  36. assertEquals(
  37. "Parent should only have two mutation events (remove field and its caption)",
  38. 2, mutationEvents.intValue());
  39. }
  40. }