| /******************************************************************************* |
| * Copyright (c) 2015 Tasktop Technologies and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Tasktop Technologies - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.mylyn.internal.tasks.ui; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.mockito.Mockito.mock; |
| import static org.mockito.Mockito.when; |
| |
| import org.eclipse.jface.resource.ImageDescriptor; |
| import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants; |
| import org.eclipse.mylyn.tasks.core.TaskRepository; |
| import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; |
| import org.eclipse.swt.graphics.Image; |
| import org.eclipse.swt.graphics.ImageData; |
| import org.eclipse.swt.graphics.PaletteData; |
| import org.eclipse.swt.widgets.Display; |
| import org.junit.Test; |
| |
| import com.google.common.collect.ImmutableSet; |
| |
| @SuppressWarnings("restriction") |
| public class BrandManagerTest { |
| private final BrandManager brandManager = new BrandManager(); |
| |
| @Test |
| public void testGetConnectorLabel() { |
| MockRepositoryConnector mock1 = connector("mock1"); |
| MockRepositoryConnector mock2 = connector("mock2"); |
| brandManager.addConnectorLabel("mock1", "org.mylyn", "Mylyn"); |
| brandManager.addConnectorLabel("mock1", "org.eclipse", "Eclipse"); |
| brandManager.addConnectorLabel("mock2", "org.mylyn", "Mylyn"); |
| brandManager.addConnectorLabel("mock2", "com.acme", "ACME"); |
| |
| assertBrands(); |
| assertEquals("Mylyn", brandManager.getConnectorLabel(mock1, "org.mylyn")); |
| assertEquals("Eclipse", brandManager.getConnectorLabel(mock1, "org.eclipse")); |
| assertEquals("Mylyn", brandManager.getConnectorLabel(mock2, "org.mylyn")); |
| assertEquals("ACME", brandManager.getConnectorLabel(mock2, "com.acme")); |
| assertEquals(mock2.getLabel(), brandManager.getConnectorLabel(mock2, "org.eclipse")); |
| assertEquals(mock2.getLabel(), brandManager.getConnectorLabel(mock2, null)); |
| } |
| |
| @Test |
| public void testGetBrandingIcon() { |
| brandManager.addBrandingIcon("mock1", "org.mylyn", image(1)); |
| brandManager.addBrandingIcon("mock1", "org.eclipse", new Image(Display.getCurrent(), 2, 2)); |
| brandManager.addBrandingIcon("mock2", "org.mylyn", new Image(Display.getCurrent(), 3, 3)); |
| brandManager.addBrandingIcon("mock2", "com.acme", new Image(Display.getCurrent(), 4, 4)); |
| |
| assertBrands(); |
| assertBrandingIconHeight(1, "mock1", "org.mylyn"); |
| assertBrandingIconHeight(2, "mock1", "org.eclipse"); |
| assertBrandingIconHeight(3, "mock2", "org.mylyn"); |
| assertBrandingIconHeight(4, "mock2", "com.acme"); |
| |
| assertEquals(null, brandManager.getBrandingIcon("mock2", "org.eclipse")); |
| assertEquals(null, brandManager.getBrandingIcon(repository("mock2", "org.eclipse"))); |
| assertEquals(null, brandManager.getBrandingIcon("mock2", null)); |
| assertEquals(null, brandManager.getBrandingIcon(repository("mock2", null))); |
| |
| brandManager.addDefaultBrandingIcon("mock2", new Image(Display.getCurrent(), 5, 5)); |
| assertEquals(5, brandManager.getBrandingIcon("mock2", "org.eclipse").getImageData().height); |
| assertEquals(5, brandManager.getBrandingIcon(repository("mock2", "org.eclipse")).getImageData().height); |
| assertEquals(5, brandManager.getBrandingIcon("mock2", null).getImageData().height); |
| assertEquals(5, brandManager.getBrandingIcon(repository("mock2", null)).getImageData().height); |
| } |
| |
| private void assertBrandingIconHeight(int expectedHeight, String connectorKind, String brand) { |
| assertEquals(expectedHeight, brandManager.getBrandingIcon(connectorKind, brand).getImageData().height); |
| assertEquals(expectedHeight, |
| brandManager.getBrandingIcon(repository(connectorKind, brand)).getImageData().height); |
| } |
| |
| private TaskRepository repository(String connectorKind, String brand) { |
| TaskRepository repository = new TaskRepository(connectorKind, "http://mock"); |
| repository.setProperty(ITasksCoreConstants.PROPERTY_BRAND_ID, brand); |
| return repository; |
| } |
| |
| @Test |
| public void testGetOverlayIcon() { |
| brandManager.addOverlayIcon("mock1", "org.mylyn", imageDescriptor(1)); |
| brandManager.addOverlayIcon("mock1", "org.eclipse", imageDescriptor(2)); |
| brandManager.addOverlayIcon("mock2", "org.mylyn", imageDescriptor(3)); |
| brandManager.addOverlayIcon("mock2", "com.acme", imageDescriptor(4)); |
| |
| assertBrands(); |
| assertOverlayIconHeight(1, "mock1", "org.mylyn"); |
| assertOverlayIconHeight(2, "mock1", "org.eclipse"); |
| assertOverlayIconHeight(3, "mock2", "org.mylyn"); |
| assertOverlayIconHeight(4, "mock2", "com.acme"); |
| |
| assertEquals(null, brandManager.getOverlayIcon("mock2", "org.eclipse")); |
| assertEquals(null, brandManager.getOverlayIcon(repository("mock2", "org.eclipse"))); |
| assertEquals(null, brandManager.getOverlayIcon("mock2", null)); |
| assertEquals(null, brandManager.getOverlayIcon(repository("mock2", null))); |
| |
| brandManager.addDefaultOverlayIcon("mock2", imageDescriptor(5)); |
| assertEquals(5, brandManager.getOverlayIcon("mock2", "org.eclipse").getImageData().height); |
| assertEquals(5, brandManager.getOverlayIcon(repository("mock2", "org.eclipse")).getImageData().height); |
| assertEquals(5, brandManager.getOverlayIcon("mock2", null).getImageData().height); |
| assertEquals(5, brandManager.getOverlayIcon(repository("mock2", null)).getImageData().height); |
| } |
| |
| private void assertOverlayIconHeight(int expectedHeight, String connectorKind, String brand) { |
| assertEquals(expectedHeight, brandManager.getOverlayIcon(connectorKind, brand).getImageData().height); |
| assertEquals(expectedHeight, |
| brandManager.getOverlayIcon(repository(connectorKind, brand)).getImageData().height); |
| } |
| |
| private void assertBrands() { |
| assertEquals(ImmutableSet.of("org.mylyn", "org.eclipse"), brandManager.getBrands("mock1")); |
| assertEquals(ImmutableSet.of("org.mylyn", "com.acme"), brandManager.getBrands("mock2")); |
| assertEquals(ImmutableSet.of(), brandManager.getBrands("unknown")); |
| } |
| |
| private Image image(int size) { |
| return new Image(Display.getCurrent(), size, size); |
| } |
| |
| private ImageDescriptor imageDescriptor(int size) { |
| ImageDescriptor mock = mock(ImageDescriptor.class); |
| ImageData data = new ImageData(size, size, 1, new PaletteData(1, 1, 1)); |
| when(mock.getImageData()).thenReturn(data); |
| return mock; |
| } |
| |
| private MockRepositoryConnector connector(final String kind) { |
| return new MockRepositoryConnector() { |
| @Override |
| public String getConnectorKind() { |
| return kind; |
| } |
| }; |
| } |
| } |