diff options
Diffstat (limited to 'framework/src/onos/core/api/src/test/java/org/onosproject/ui/UiExtensionTest.java')
-rw-r--r-- | framework/src/onos/core/api/src/test/java/org/onosproject/ui/UiExtensionTest.java | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/framework/src/onos/core/api/src/test/java/org/onosproject/ui/UiExtensionTest.java b/framework/src/onos/core/api/src/test/java/org/onosproject/ui/UiExtensionTest.java new file mode 100644 index 00000000..bd3d15f6 --- /dev/null +++ b/framework/src/onos/core/api/src/test/java/org/onosproject/ui/UiExtensionTest.java @@ -0,0 +1,140 @@ +/* + * Copyright 2015 Open Networking Laboratory + * + * 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 org.onosproject.ui; + +import com.google.common.collect.ImmutableList; +import org.junit.Test; + +import java.io.IOException; +import java.util.List; + +import static com.google.common.io.ByteStreams.toByteArray; +import static org.junit.Assert.*; +import static org.onosproject.ui.UiView.Category.OTHER; + +/** + * Tests the default user interface extension descriptor. + */ +public class UiExtensionTest { + + private static final String FOO_ID = "foo"; + private static final String FOO_LABEL = "Foo View"; + private static final String BAR_ID = "bar"; + private static final String BAR_LABEL = "Bar View"; + private static final String CUSTOM = "custom"; + + + private static final UiView FOO_VIEW = new UiView(OTHER, FOO_ID, FOO_LABEL); + private static final UiView BAR_VIEW = new UiView(OTHER, BAR_ID, BAR_LABEL); + private static final UiView HIDDEN_VIEW = new UiViewHidden(FOO_ID); + + private static final UiMessageHandlerFactory MH_FACTORY = () -> null; + private static final UiTopoOverlayFactory TO_FACTORY = () -> null; + + private final ClassLoader cl = getClass().getClassLoader(); + + private List<UiView> viewList; + private UiExtension ext; + private String css; + private String js; + private UiView view; + + + + @Test + public void basics() throws IOException { + viewList = ImmutableList.of(FOO_VIEW); + ext = new UiExtension.Builder(cl, viewList).build(); + + css = new String(toByteArray(ext.css())); + assertTrue("incorrect css stream", css.contains("foo-css")); + js = new String(toByteArray(ext.js())); + assertTrue("incorrect js stream", js.contains("foo-js")); + + assertEquals("expected 1 view", 1, ext.views().size()); + view = ext.views().get(0); + assertEquals("wrong view category", OTHER, view.category()); + assertEquals("wrong view id", FOO_ID, view.id()); + assertEquals("wrong view label", FOO_LABEL, view.label()); + + assertNull("unexpected message handler factory", ext.messageHandlerFactory()); + assertNull("unexpected topo overlay factory", ext.topoOverlayFactory()); + } + + @Test + public void withPath() throws IOException { + viewList = ImmutableList.of(FOO_VIEW); + ext = new UiExtension.Builder(cl, viewList) + .resourcePath(CUSTOM) + .build(); + + css = new String(toByteArray(ext.css())); + assertTrue("incorrect css stream", css.contains("custom-css")); + js = new String(toByteArray(ext.js())); + assertTrue("incorrect js stream", js.contains("custom-js")); + + assertEquals("expected 1 view", 1, ext.views().size()); + view = ext.views().get(0); + assertEquals("wrong view category", OTHER, view.category()); + assertEquals("wrong view id", FOO_ID, view.id()); + assertEquals("wrong view label", FOO_LABEL, view.label()); + + assertNull("unexpected message handler factory", ext.messageHandlerFactory()); + assertNull("unexpected topo overlay factory", ext.topoOverlayFactory()); + } + + @Test + public void messageHandlerFactory() { + viewList = ImmutableList.of(FOO_VIEW); + ext = new UiExtension.Builder(cl, viewList) + .messageHandlerFactory(MH_FACTORY) + .build(); + + assertEquals("wrong message handler factory", MH_FACTORY, + ext.messageHandlerFactory()); + assertNull("unexpected topo overlay factory", ext.topoOverlayFactory()); + } + + @Test + public void topoOverlayFactory() { + viewList = ImmutableList.of(HIDDEN_VIEW); + ext = new UiExtension.Builder(cl, viewList) + .topoOverlayFactory(TO_FACTORY) + .build(); + + assertNull("unexpected message handler factory", ext.messageHandlerFactory()); + assertEquals("wrong topo overlay factory", TO_FACTORY, + ext.topoOverlayFactory()); + } + + @Test + public void twoViews() { + viewList = ImmutableList.of(FOO_VIEW, BAR_VIEW); + ext = new UiExtension.Builder(cl, viewList).build(); + + assertEquals("expected 2 views", 2, ext.views().size()); + + view = ext.views().get(0); + assertEquals("wrong view category", OTHER, view.category()); + assertEquals("wrong view id", FOO_ID, view.id()); + assertEquals("wrong view label", FOO_LABEL, view.label()); + + view = ext.views().get(1); + assertEquals("wrong view category", OTHER, view.category()); + assertEquals("wrong view id", BAR_ID, view.id()); + assertEquals("wrong view label", BAR_LABEL, view.label()); + } +}
\ No newline at end of file |