1e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov/******************************************************************************* 2b9d1b54e300318b470d9fedccc69d75187016444Evgeny Mandrikov * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors 3e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * All rights reserved. This program and the accompanying materials 4e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * are made available under the terms of the Eclipse Public License v1.0 5e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * which accompanies this distribution, and is available at 6e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * http://www.eclipse.org/legal/epl-v10.html 7e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * 8e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Contributors: 9e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Marc R. Hoffmann - initial API and implementation 10e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * 11e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov *******************************************************************************/ 12e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovpackage org.jacoco.report.internal.html.page; 13e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 14e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport java.io.IOException; 15e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport java.util.Locale; 16e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 17e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.ILanguageNames; 18e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.JavaNames; 19e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.MemoryMultiReportOutput; 20e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.ReportOutputFolder; 21e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.html.HTMLSupport; 22e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.html.IHTMLReportContext; 23e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.html.ILinkable; 24e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.html.LinkableStub; 25e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.html.index.IIndexUpdate; 26e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.html.resources.Resources; 27e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.html.resources.Styles; 28e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.html.table.LabelColumn; 29e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.jacoco.report.internal.html.table.Table; 30e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovimport org.junit.After; 31e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 32e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov/** 33e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov * Unit tests for {@link ReportPage}. 34e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov */ 35e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikovpublic abstract class PageTestBase { 36e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 37e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov protected MemoryMultiReportOutput output; 38e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 39e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov protected ReportOutputFolder rootFolder; 40e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 41e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov protected IHTMLReportContext context; 42e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 43e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov protected HTMLSupport support; 44e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 45e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov protected void setup() throws Exception { 46e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov output = new MemoryMultiReportOutput(); 47e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov rootFolder = new ReportOutputFolder(output); 48e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov final Resources resources = new Resources(rootFolder); 49e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov final Table table = new Table(); 50e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov table.add("Element", null, new LabelColumn(), true); 51e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov context = new IHTMLReportContext() { 52e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 53e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public ILanguageNames getLanguageNames() { 54e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov return new JavaNames(); 55e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 56e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 57e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public Resources getResources() { 58e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov return resources; 59e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 60e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 61e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public Table getTable() { 62e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov return table; 63e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 64e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 65e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public String getFooterText() { 66e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov return "CustomFooter"; 67e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 68e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 69e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public ILinkable getSessionsPage() { 70e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov return new LinkableStub("sessions.html", "Sessions", 71e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov Styles.EL_SESSION); 72e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 73e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 74e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public String getOutputEncoding() { 75e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov return "UTF-8"; 76e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 77e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 78e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public IIndexUpdate getIndexUpdate() { 79e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov return new IIndexUpdate() { 80e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void addClass(ILinkable link, long classid) { 81e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 82e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov }; 83e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 84e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 85e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public Locale getLocale() { 86e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov return Locale.ENGLISH; 87e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 88e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 89e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov }; 90e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov support = new HTMLSupport(); 91e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 92e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 93e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov @After 94e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov public void teardown() throws IOException { 95e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov output.close(); 96e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov output.assertAllClosed(); 97e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov } 98e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov 99e69ba4dbb015949c5d84ba7bbb0b53efac28bb23Evgeny Mandrikov} 100