Package org.apache.wookie.tests

Source Code of org.apache.wookie.tests.HtmlCleanerTest

/*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.wookie.tests;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;

import org.apache.wookie.util.html.HtmlCleaner;
import org.junit.Test;


public class HtmlCleanerTest {

  /**
   * Tests injecting a script
   */
  @Test
  public void injectScript(){
    HtmlCleaner cleaner = new HtmlCleaner();
    String content = "";
    String out = "";
    StringWriter writer = new StringWriter();
    try {
      cleaner.setReader(new StringReader(content));
      cleaner.injectScript("test.js");
      cleaner.process(writer);
      out = writer.getBuffer().toString();
      assertEquals("<html><head><script type=\"text/javascript\" src=\"test.js\"></script></head><body></body></html>", out);
    } catch (IOException e) {
      fail();
    }
  }

  /**
   * tests that user scripts are placed after injected scripts
   */
  @Test
  public void injectScriptWithUserScript(){
    HtmlCleaner cleaner = new HtmlCleaner();
    String content = "<head><script type=\"text/javascript\" src=\"user.js\"></script></head>";
    String out = "";
    StringWriter writer = new StringWriter();
    try {
      cleaner.setReader(new StringReader(content));
      cleaner.injectScript("inject.js");
      cleaner.process(writer);
      out = writer.getBuffer().toString();
      assertEquals("<html><head><script type=\"text/javascript\" src=\"inject.js\"></script><script type=\"text/javascript\" src=\"user.js\"></script></head><body></body></html>", out);
    } catch (IOException e) {
      fail();
    }
  }
 
  /**
   * tests that user scripts are placed after injected scripts and are not reordered
   */
  @Test
  public void injectScriptWithUserScriptNoReorder(){
    HtmlCleaner cleaner = new HtmlCleaner();
    String content = "<head><script type=\"text/javascript\" src=\"user.js\"></script><script type=\"text/javascript\">google.load(\"dojo\", \"1.4.1\");</script></head>";
    String out = "";
    StringWriter writer = new StringWriter();
    try {
      cleaner.setReader(new StringReader(content));
      cleaner.injectScript("inject.js");
      cleaner.process(writer);
      out = writer.getBuffer().toString();
      assertEquals("<html><head><script type=\"text/javascript\" src=\"inject.js\"></script><script type=\"text/javascript\" src=\"user.js\"></script><script type=\"text/javascript\">google.load(\"dojo\", \"1.4.1\");</script></head><body></body></html>", out);
    } catch (IOException e) {
      fail();
    }
  }

  /**
   * tests injecting stylesheet
   */
  @Test
  public void injectStylesheet(){
    HtmlCleaner cleaner = new HtmlCleaner();
    String content = "";
    String out = "";
    StringWriter writer = new StringWriter();
    try {
      cleaner.setReader(new StringReader(content));
      cleaner.injectStylesheet("test.css");
      cleaner.process(writer);
      out = writer.getBuffer().toString();
      assertEquals("<html><head><link type=\"text/css\" rel=\"stylesheet\" href=\"test.css\" /></head><body></body></html>", out);
    } catch (IOException e) {
      fail();
    }
  }

  @Test (expected = IOException.class)
  public void nullReader() throws IOException{
    HtmlCleaner cleaner = new HtmlCleaner();
    StringWriter writer = new StringWriter();
    cleaner.setReader(null);
    cleaner.injectStylesheet("test.css");
    cleaner.process(writer);
    fail();
  }
  @Test (expected = IOException.class)
  public void nullContentInReader() throws IOException{
    HtmlCleaner cleaner = new HtmlCleaner();
    StringWriter writer = new StringWriter();
    cleaner.setReader(new FileReader("bogus.html"));
    cleaner.injectStylesheet("test.css");
    cleaner.process(writer);
  }

  @Test  (expected = IOException.class)
  public void nullWriter() throws IOException{
    HtmlCleaner cleaner = new HtmlCleaner();
    FileWriter writer = null;
    cleaner.setReader(new StringReader("test"));
    cleaner.injectStylesheet("test.css");
    cleaner.process(writer);
  }


}
TOP

Related Classes of org.apache.wookie.tests.HtmlCleanerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.