diff options
author | Denis Anisimov <denis@vaadin.com> | 2014-03-12 21:17:18 +0200 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2014-05-22 09:52:42 +0000 |
commit | 95e563a69b540bae2616466ae25646eba50d4afe (patch) | |
tree | 9a011e0417ee06f1ee7648da6975a19ec0401316 /server/tests/src/com | |
parent | a11909909c895032ca5f8b271dfb0fa29efa2a6f (diff) | |
download | vaadin-framework-95e563a69b540bae2616466ae25646eba50d4afe.tar.gz vaadin-framework-95e563a69b540bae2616466ae25646eba50d4afe.zip |
Prevent adding/setting parent component as child (#12720).
Change-Id: I9b7b43f176e88d9edca591001297b94475a31854
Diffstat (limited to 'server/tests/src/com')
2 files changed, 109 insertions, 0 deletions
diff --git a/server/tests/src/com/vaadin/tests/server/component/abstractcomponentcontainer/AddParentAsChild.java b/server/tests/src/com/vaadin/tests/server/component/abstractcomponentcontainer/AddParentAsChild.java new file mode 100644 index 0000000000..67e6d09adc --- /dev/null +++ b/server/tests/src/com/vaadin/tests/server/component/abstractcomponentcontainer/AddParentAsChild.java @@ -0,0 +1,64 @@ +/* + * Copyright 2000-2014 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.abstractcomponentcontainer; + +import java.util.Iterator; + +import org.easymock.EasyMock; +import org.junit.Test; + +import com.vaadin.ui.AbstractComponentContainer; +import com.vaadin.ui.Component; +import com.vaadin.ui.HasComponents; + +/** + * Tests for avoiding add parent as child for + * {@link AbstractComponentContainer#addComponent(Component)} + * + * @author Vaadin Ltd + */ +public class AddParentAsChild { + + @Test(expected = IllegalArgumentException.class) + public void testAddComponent() { + AbstractComponentContainer container = new ComponentContainer(); + HasComponents hasComponentsMock = EasyMock + .createMock(HasComponents.class); + container.setParent(hasComponentsMock); + + container.addComponent(hasComponentsMock); + } + + class ComponentContainer extends AbstractComponentContainer { + + @Override + public void replaceComponent(Component oldComponent, + Component newComponent) { + } + + @Override + public int getComponentCount() { + return 0; + } + + @Override + public Iterator<Component> iterator() { + return null; + } + + } + +} diff --git a/server/tests/src/com/vaadin/tests/server/component/abstractsinglecomponentcontainer/SetParentAsContent.java b/server/tests/src/com/vaadin/tests/server/component/abstractsinglecomponentcontainer/SetParentAsContent.java new file mode 100644 index 0000000000..dae0e57d02 --- /dev/null +++ b/server/tests/src/com/vaadin/tests/server/component/abstractsinglecomponentcontainer/SetParentAsContent.java @@ -0,0 +1,45 @@ +/* + * Copyright 2000-2014 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.abstractsinglecomponentcontainer; + +import org.easymock.EasyMock; +import org.junit.Test; + +import com.vaadin.ui.AbstractSingleComponentContainer; +import com.vaadin.ui.Component; +import com.vaadin.ui.HasComponents; + +/** + * + * Tests for avoiding set parent as child for + * {@link AbstractSingleComponentContainer#setContent(Component)} + * + * @author Vaadin Ltd + */ +public class SetParentAsContent { + + @Test(expected = IllegalArgumentException.class) + public void testSetContent() { + AbstractSingleComponentContainer container = new AbstractSingleComponentContainer() { + }; + HasComponents hasComponentsMock = EasyMock + .createMock(HasComponents.class); + container.setParent(hasComponentsMock); + + container.setContent(hasComponentsMock); + } + +} |