/*******************************************************************************
* Copyright (c) 2013, 2015 IBM Corporation 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:
* IBM Corporation - initial API and implementation
* Thibault Le Ouay <thibaultleouay@gmail.com> - Bug 443094
*******************************************************************************/
package org.eclipse.e4.ui.css.swt.helpers;
import static org.eclipse.e4.ui.css.swt.helpers.CSSSWTFontHelper.getFontData;
import static org.junit.Assert.assertEquals;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.FontData;
import org.junit.Test;
public class CSSSWTFontHelperTest extends CSSSWTHelperTestCase {
@Test
public void testGetFontData() {
FontData result = getFontData(fontProperties("Times", 11, CSS_ITALIC, CSS_BOLD),
new FontData());
assertEquals("Times", result.getName());
assertEquals(11, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataWithoutOldFont() {
FontData result = getFontData(fontProperties("Times", 11, CSS_ITALIC, CSS_BOLD),
null);
assertEquals("Times", result.getName());
assertEquals(11, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataStyledFont() {
FontData result = getFontData(fontProperties("Times", 11, "normal", "normal"),
new FontData("Courier", 11, SWT.ITALIC | SWT.BOLD));
assertEquals("Times", result.getName());
assertEquals(11, result.getHeight());
assertEquals(SWT.NORMAL, result.getStyle());
}
@Test
public void testGetFontDataWhenMissingFamilyInCss() {
FontData result = getFontData(fontProperties(null, 11, CSS_ITALIC, CSS_BOLD),
new FontData("Courier", 5, SWT.NORMAL));
assertEquals("Courier", result.getName());
assertEquals(11, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataWhenMissingSizeInCss() {
FontData result = getFontData(fontProperties("Arial", null, CSS_ITALIC, CSS_BOLD),
new FontData("Courier", 5, SWT.NORMAL));
assertEquals("Arial", result.getName());
assertEquals(5, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataWhenMissingStyleInCss() {
FontData result = getFontData(fontProperties("Times", 11, null, CSS_BOLD),
new FontData("Courier", 5, SWT.ITALIC));
assertEquals("Times", result.getName());
assertEquals(11, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataWhenMissingWeightInCss() {
FontData result = getFontData(fontProperties("Times", 11, CSS_ITALIC, null),
new FontData("Courier", 5, SWT.BOLD));
assertEquals("Times", result.getName());
assertEquals(11, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataWhenMissingAllInCss() {
FontData result = getFontData(fontProperties(null, null, null, null),
new FontData("Courier", 11, SWT.ITALIC | SWT.BOLD));
assertEquals("Courier", result.getName());
assertEquals(11, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataWhenFontFamilyFromDefinitionAndOverwritingSize() {
registerFontProviderWith("org.eclipse.jface.bannerfont", "Arial", 15, SWT.ITALIC | SWT.BOLD);
FontData result = getFontData(
fontProperties(addFontDefinitionMarker("org-eclipse-jface-bannerfont"), 10, null, null),
new FontData());
assertEquals("Arial", result.getName());
assertEquals(10, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataWhenFontFamilyFromDefinitionAndOverwritingStyle() {
registerFontProviderWith("org.eclipse.jface.bannerfont", "Arial", 15, SWT.BOLD);
FontData result = getFontData(
fontProperties(addFontDefinitionMarker("org-eclipse-jface-bannerfont"), null, CSS_ITALIC, null),
new FontData());
assertEquals("Arial", result.getName());
assertEquals(15, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataWhenFontFamilyFromDefinitionAndOverwritingWeight() {
registerFontProviderWith("org.eclipse.jface.bannerfont", "Arial", 15, SWT.ITALIC);
FontData result = getFontData(
fontProperties(addFontDefinitionMarker("org-eclipse-jface-bannerfont"), null, null, CSS_BOLD),
new FontData());
assertEquals("Arial", result.getName());
assertEquals(15, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
@Test
public void testGetFontDataFromFontDefinition() {
registerFontProviderWith("org.eclipse.jface.bannerfont", "Arial", 15, SWT.ITALIC | SWT.BOLD);
FontData result = getFontData(
fontProperties(addFontDefinitionMarker("org-eclipse-jface-bannerfont")),
new FontData());
assertEquals("Arial", result.getName());
assertEquals(15, result.getHeight());
assertEquals(SWT.ITALIC | SWT.BOLD, result.getStyle());
}
}