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