1439N/Apackage org.opensolaris.opengrok.analysis.php;
1450N/A
1461N/Aimport static org.junit.Assert.assertEquals;
1461N/A
1461N/Aimport java.io.BufferedReader;
1461N/Aimport java.io.File;
1461N/Aimport java.io.FileInputStream;
1461N/Aimport java.io.FileNotFoundException;
1461N/Aimport java.io.IOException;
1461N/Aimport java.io.InputStream;
1461N/Aimport java.io.InputStreamReader;
1461N/Aimport java.io.StringReader;
1461N/Aimport java.io.StringWriter;
1461N/Aimport java.io.Writer;
1461N/Aimport java.util.ArrayList;
1461N/A
1439N/Aimport org.junit.Test;
1461N/Aimport org.opensolaris.opengrok.analysis.XrefWriter;
1439N/A
1439N/A/**
1439N/A * Tests the {@link PhpXref} class.
1439N/A * @author Gustavo Lopes
1439N/A */
1439N/Apublic class PhpXrefTest {
1461N/A static InputStream getTestFile(String name) throws FileNotFoundException {
1461N/A File f = new File("test/"
1461N/A + PhpXrefTest.class.getPackage().getName().replace('.', '/')
1461N/A + "/" + name);
1461N/A return new FileInputStream(f);
1461N/A }
1461N/A /**
1461N/A * Xref output test for a sample string.
1461N/A * @throws IOException
1461N/A */
1461N/A @SuppressWarnings("static-method")
1439N/A @Test
1439N/A public void basicTest() throws IOException {
1451N/A String s = "<?php foo bar";
1461N/A StringWriter w = new StringWriter();
1461N/A XrefWriter out = new XrefWriter(w);
1461N/A PhpAnalyzer.writeXref(new StringReader(s), out, null, null, null);
1461N/A assertEquals("<div id='lines'\n><div><strong>&lt;"
1461N/A + "?php</strong> <a href=\"/source/s?defs=foo\">foo</a> "
1461N/A + "<a href=\"/source/s?defs=bar\">bar</a></div\n></div\n>",
1461N/A w.toString());
1461N/A out.close();
1439N/A }
1439N/A
1461N/A /**
1461N/A * Xref output test for {@code sample.php}.
1461N/A * @throws IOException
1461N/A */
1461N/A @SuppressWarnings("static-method")
1450N/A @Test
1450N/A public void sampleTest() throws IOException {
1461N/A // produce
1461N/A InputStreamReader in =
1461N/A new InputStreamReader(getTestFile("sample.php"), "UTF-8");
1461N/A Writer w = new StringWriter();
1461N/A XrefWriter out = new XrefWriter(w);
1461N/A PhpAnalyzer.writeXref(in, out, null, null, null);
1461N/A out.close();
1461N/A in.close();
1461N/A
1461N/A // get expected
1461N/A in = new InputStreamReader(getTestFile("sampleXrefRes.html"), "UTF-8");
1461N/A ArrayList<String> expected = new ArrayList<String>(64);
1461N/A BufferedReader bir = new BufferedReader(in);
1461N/A String s;
1461N/A while ((s = bir.readLine()) != null) {
1461N/A expected.add(s);
1450N/A }
1461N/A bir.close();
1461N/A
1461N/A // compare
1461N/A String gotten[] = w.toString().split("\n");
1461N/A assertEquals(expected.size(), gotten.length);
1450N/A for (int i = 0; i < gotten.length; i++) {
1470N/A assertEquals("line "+(i+1), expected.get(i).trim(), gotten[i].trim());
1450N/A }
1439N/A }
1439N/A}