aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/test/java/org/onosproject/ui/UiExtensionTest.java
diff options
context:
space:
mode:
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.java140
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