mirror of
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-09-13 15:45:38 +02:00
367 lines
10 KiB
Java
367 lines
10 KiB
Java
|
/* *******************************************************************
|
||
|
* Copyright (c) 1999-2001 Xerox Corporation,
|
||
|
* 2002 Palo Alto Research Center, Incorporated (PARC).
|
||
|
* All rights reserved.
|
||
|
* This program and the accompanying materials are made available
|
||
|
* under the terms of the Common Public License v1.0
|
||
|
* which accompanies this distribution and is available at
|
||
|
* http://www.eclipse.org/legal/cpl-v10.html
|
||
|
*
|
||
|
* Contributors:
|
||
|
* Xerox/PARC initial implementation
|
||
|
* ******************************************************************/
|
||
|
|
||
|
|
||
|
import java.io.*;
|
||
|
import java.util.*;
|
||
|
import org.apache.tools.ant.*;
|
||
|
import org.apache.tools.ant.taskdefs.*;
|
||
|
import org.apache.tools.ant.types.*;
|
||
|
|
||
|
/**
|
||
|
* Tests the Ajdoc ant task.
|
||
|
*/
|
||
|
public class AjdocTaskTester extends AntTaskTester {
|
||
|
|
||
|
/** todo correlate with basedir, local.properties in test-ant-task */
|
||
|
protected final static String TEST_DOCDIR
|
||
|
= "test-docs";
|
||
|
protected final static String TEST_SOURCES = "../src";
|
||
|
protected File docDir = null;
|
||
|
|
||
|
/**
|
||
|
* We use <code>"tests/ant/etc/ajc.xml"</code>.
|
||
|
*/
|
||
|
public String getAntFile() {
|
||
|
return "tests/ant/etc/ajdoc.xml";
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Put {@link #TEST_DOCDIR} and {@link #TEST_SOURCES}
|
||
|
* into the user properties.
|
||
|
*/
|
||
|
protected Map getUserProperties() {
|
||
|
Map userProps = new HashMap();
|
||
|
// these are in local.properties per test-ant-tasks.xml
|
||
|
//userProps.put("ajdoc.relative.doc.dir", TEST_DOCDIR );
|
||
|
//userProps.put("ajdoc.relative.src.dir", TEST_SOURCES);
|
||
|
return userProps;
|
||
|
}
|
||
|
|
||
|
////// Begin tests //////////////////////////////////////////////
|
||
|
|
||
|
public void test_stylesheetfile() {
|
||
|
avoid(STYLESHEET_CSS);
|
||
|
wantFiles("One.html");
|
||
|
wantFiles("mystylesheet.css");
|
||
|
}
|
||
|
|
||
|
public void test_helpfile() {
|
||
|
avoid(HELP_DOC_HTML);
|
||
|
wantFiles("One.html");
|
||
|
wantFiles("myhelp.html");
|
||
|
}
|
||
|
|
||
|
public void test_nodeprecatedlist_no() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_nodeprecatedlist_yes() {
|
||
|
avoid(DEPRECATED_LIST_HTML);
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
|
||
|
public void test_nodeprecated_no() { wantFiles("One.html"); }
|
||
|
public void test_nodeprecated_yes() { wantFiles("One.html"); }
|
||
|
|
||
|
public void test_use_no() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_use_yes() {
|
||
|
wantFiles("One.html");
|
||
|
wantFiles("class-use/One.html");
|
||
|
}
|
||
|
|
||
|
public void test_standard_no() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_standard_yes() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
|
||
|
public void test_author_no() { wantFiles("One.html"); }
|
||
|
public void test_author_yes() { wantFiles("One.html"); }
|
||
|
|
||
|
public void test_public_no() { wantFiles("One.html"); }
|
||
|
public void test_public_yes() { wantFiles("One.html"); }
|
||
|
public void test_package_no() { wantFiles("One.html"); }
|
||
|
public void test_package_yes() { wantFiles("One.html"); }
|
||
|
public void test_protected_no() { wantFiles("One.html"); }
|
||
|
public void test_protected_yes() { wantFiles("One.html"); }
|
||
|
public void test_private_no() { wantFiles("One.html"); }
|
||
|
public void test_private_yes() { wantFiles("One.html"); }
|
||
|
|
||
|
public void test_splitindex_no() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_splitindex_yes() {
|
||
|
avoid(INDEX_ALL_HTML);
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
|
||
|
public void test_windowtitle() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_doctitle() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_bottom() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_footer() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_header() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
|
||
|
public void test_nohelp_no() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_nohelp_yes() {
|
||
|
avoid(HELP_DOC_HTML);
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
|
||
|
public void test_noindex_no() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_noindex_yes() {
|
||
|
avoid(INDEX_ALL_HTML);
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
|
||
|
public void test_notree_no() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test_notree_yes() {
|
||
|
avoid(OVERVIEW_TREE_HTML);
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
|
||
|
public void test985() {
|
||
|
wantFiles("p1/One.html,p1/pp1/One.html");
|
||
|
wantFiles("p2/Two.html,p2/pp2/Two.html");
|
||
|
}
|
||
|
public void test986() {
|
||
|
wantFiles("p1/One.html,p1/pp1/One.html");
|
||
|
}
|
||
|
public void test987() {
|
||
|
wantFiles("p1/One.html");
|
||
|
wantFiles("p2/Two.html");
|
||
|
}
|
||
|
public void test988() {
|
||
|
wantFiles("p1/One.html");
|
||
|
}
|
||
|
public void test989() {
|
||
|
wantFiles("p1/One.html,p1/pp1/One.html");
|
||
|
wantFiles("p2/Two.html,p2/pp2/Two.html");
|
||
|
}
|
||
|
public void test990() {
|
||
|
wantFiles("p1/One.html,p1/pp1/One.html");
|
||
|
wantFiles("p2/Two.html,p2/pp2/Two.html");
|
||
|
}
|
||
|
public void test991() {
|
||
|
wantFiles("p1/One.html,p1/pp1/One.html");
|
||
|
wantFiles("p2/Two.html");
|
||
|
}
|
||
|
public void test992() {
|
||
|
wantFiles("p1/One.html,p2/Two.html");
|
||
|
}
|
||
|
public void test993() {
|
||
|
wantFiles("p1/One.html,p1/pp1/One.html");
|
||
|
}
|
||
|
public void test994() {
|
||
|
wantFiles("p1/One.html,p1/pp1/One.html");
|
||
|
}
|
||
|
public void test995() {
|
||
|
wantFiles("p1/One.html");
|
||
|
}
|
||
|
public void test996() {
|
||
|
wantFiles("One.html,Two.html");
|
||
|
}
|
||
|
public void test997() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
public void test998() {
|
||
|
wantFiles("One.html,Two.html");
|
||
|
}
|
||
|
public void test999() {
|
||
|
wantFiles("One.html");
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
////// End tests ////////////////////////////////////////////////
|
||
|
|
||
|
private final static int OVERVIEW_TREE_HTML = 0x000001;
|
||
|
private final static int INDEX_ALL_HTML = 0x000002;
|
||
|
private final static int DEPRECATED_LIST_HTML = 0x000004;
|
||
|
private final static int ALLCLASSES_FRAME_HTML = 0x000008;
|
||
|
private final static int INDEX_HTML = 0x000010;
|
||
|
private final static int PACKAGES_HTML = 0x000020;
|
||
|
private final static int OVERVIEW_SUMMARY_HTML = 0x000040;
|
||
|
private final static int PACKAGE_LIST = 0x000080;
|
||
|
private final static int HELP_DOC_HTML = 0x000100;
|
||
|
private final static int STYLESHEET_CSS = 0x000200;
|
||
|
private final static int ALL = 0x0003ff;
|
||
|
private final static int TOP = ((ALL<<1)|1)&~ALL;
|
||
|
private final static String[] FILES = new String[] {
|
||
|
"overview-tree.html",
|
||
|
"index-all.html",
|
||
|
"deprecated-list.html",
|
||
|
"allclasses-frame.html",
|
||
|
"index.html",
|
||
|
"packages.html",
|
||
|
"overview-summary.html",
|
||
|
"package-list",
|
||
|
"help-doc.html",
|
||
|
"stylesheet.css",
|
||
|
};
|
||
|
|
||
|
private void wantFiles(int mods) {
|
||
|
mods &= (ALL | TOP);
|
||
|
|
||
|
for (int c = 0; mods != 0x1; c++, mods >>= 0x1) {
|
||
|
if ((mods & 0x1) == 0x1) {
|
||
|
wantFiles(FILES[c]);
|
||
|
} else {
|
||
|
avoidFiles(FILES[c]);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private int MODS = ALL;
|
||
|
private void avoid(int mods) {
|
||
|
MODS &= ~mods;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Make the doc dir -- e.g. call {@link #makeDocDir}
|
||
|
*/
|
||
|
protected void beforeEveryTask() {
|
||
|
makeDocDir();
|
||
|
wantFiles(MODS);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Assert classes and clear doc dir.
|
||
|
*
|
||
|
* @see #checkDocs()
|
||
|
* @see #clearDocDir()
|
||
|
*/
|
||
|
protected void afterEveryTask() {
|
||
|
checkDocs();
|
||
|
clearDocDir();
|
||
|
MODS = ALL;
|
||
|
}
|
||
|
|
||
|
protected void avoidFiles(String filesWithoutHtmlExtensions) {
|
||
|
List list = new ArrayList();
|
||
|
for (StringTokenizer tok =
|
||
|
new StringTokenizer(filesWithoutHtmlExtensions, " ,;");
|
||
|
tok.hasMoreTokens();) {
|
||
|
list.add(tok.nextToken());
|
||
|
}
|
||
|
avoidFiles(list);
|
||
|
}
|
||
|
|
||
|
protected void avoidFiles(List filesWithoutHtmlExtensions) {
|
||
|
for (Iterator iter = filesWithoutHtmlExtensions.iterator(); iter.hasNext();) {
|
||
|
dont(iter.next()+"");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected void wantFiles(String filesWithoutHtmlExtensions) {
|
||
|
List list = new ArrayList();
|
||
|
for (StringTokenizer tok =
|
||
|
new StringTokenizer(filesWithoutHtmlExtensions, " ,;");
|
||
|
tok.hasMoreTokens();) {
|
||
|
list.add(tok.nextToken());
|
||
|
}
|
||
|
wantFiles(list);
|
||
|
}
|
||
|
|
||
|
protected void wantFiles(List filesWithoutHtmlExtensions) {
|
||
|
for (Iterator iter = filesWithoutHtmlExtensions.iterator(); iter.hasNext();) {
|
||
|
want(iter.next()+"");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected void checkDocs() {
|
||
|
for (Iterator iter = wants.iterator(); iter.hasNext();) {
|
||
|
String filename = iter.next() + "";
|
||
|
File file = new File(docDir, filename);
|
||
|
if (file != null && file.exists()) {
|
||
|
have(filename);
|
||
|
} else {
|
||
|
//System.err.println("westodo expected " + file.getPath());
|
||
|
}
|
||
|
}
|
||
|
for (Iterator iter = donts.iterator(); iter.hasNext();) {
|
||
|
String filename = iter.next() + "";
|
||
|
File file = new File(docDir, filename);
|
||
|
if (file != null && file.exists()) {
|
||
|
have(filename);
|
||
|
} else {
|
||
|
//System.err.println("westodo avoiding " + file.getPath());
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Create a new doc dir.
|
||
|
*/
|
||
|
protected void init() {
|
||
|
docDir = new File(project.getBaseDir(), TEST_DOCDIR);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Make a new doc dir using ANT.
|
||
|
*/
|
||
|
protected void makeDocDir() {
|
||
|
try {
|
||
|
Mkdir mkdir = (Mkdir)project.createTask("mkdir");
|
||
|
mkdir.setDir(docDir);
|
||
|
mkdir.execute();
|
||
|
} catch (BuildException be) {
|
||
|
be.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Clear the build dir using ANT.
|
||
|
*/
|
||
|
protected void clearDocDir() {
|
||
|
try {
|
||
|
Delete delete = (Delete)project.createTask("delete");
|
||
|
FileSet fileset = new FileSet();
|
||
|
fileset.setDir(docDir);
|
||
|
fileset.setIncludes("**");
|
||
|
delete.addFileset(fileset);
|
||
|
delete.execute();
|
||
|
} catch (BuildException be) {
|
||
|
be.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Invoke {@link #runTests(String[])} on a
|
||
|
* new instanceof {@link #AjdocTaskTester}.
|
||
|
*
|
||
|
* @param args Command line arguments.
|
||
|
*/
|
||
|
public static void main(String[] args) {
|
||
|
new AjdocTaskTester().runTests(args);
|
||
|
}
|
||
|
}
|