1 54 package org.w3c.tidy.ant; 55 56 import java.io.File ; 57 import java.io.FileReader ; 58 import java.io.IOException ; 59 import java.io.Reader ; 60 61 import junit.framework.TestCase; 62 63 import org.apache.tools.ant.BuildException; 64 import org.apache.tools.ant.Project; 65 import org.apache.tools.ant.types.FileSet; 66 import org.apache.tools.ant.types.Parameter; 67 import org.apache.tools.ant.util.FileUtils; 68 69 70 74 public class JTidyTaskTest extends TestCase 75 { 76 77 80 private JTidyTask task; 81 82 85 private String tempDir; 86 87 90 private String testDir; 91 92 95 protected void setUp() throws Exception 96 { 97 super.setUp(); 98 task = new JTidyTask(); 99 Project p = new Project(); 100 task.setProject(p); 101 task.init(); 102 tempDir = System.getProperty("java.io.tmpdir"); 103 testDir = new File (getClass().getClassLoader().getResource("test.dir").getPath()).getParent(); 104 } 105 106 109 public void testExceptionMissingParameters() 110 { 111 try 112 { 113 task.execute(); 114 fail("Invalid parameters not detected"); 115 } 116 catch (BuildException e) 117 { 118 } 120 } 121 122 125 public void testExceptionBothSrcfileAndFilesets() 126 { 127 try 128 { 129 task.setSrcfile(new File (".")); 130 task.addFileset(new FileSet()); 131 task.validateParameters(); 132 fail("Invalid parameters not detected"); 133 } 134 catch (BuildException e) 135 { 136 } 138 } 139 140 143 public void testDestFileAndDestDirNull() 144 { 145 try 146 { 147 task.setSrcfile(new File (".")); 148 task.validateParameters(); 149 fail("Invalid parameters not detected"); 150 } 151 catch (BuildException e) 152 { 153 } 155 } 156 157 160 public void testDestFileAndFilesets() 161 { 162 try 163 { 164 task.addFileset(new FileSet()); 165 task.setDestfile(new File (".")); 166 task.validateParameters(); 167 fail("Invalid parameters not detected"); 168 } 169 catch (BuildException e) 170 { 171 } 173 } 174 175 178 public void testScrFileIsADir() 179 { 180 try 181 { 182 task.setSrcfile(new File ("/")); 183 task.setDestfile(new File ("test.out")); 184 task.validateParameters(); 185 fail("Invalid parameters not detected"); 186 } 187 catch (BuildException e) 188 { 189 } 191 } 192 193 196 public void testScrFileDoesntExist() 197 { 198 199 task.setSrcfile(new File ("xyz.123")); 200 task.setDestfile(new File ("test.out")); 201 task.validateParameters(); 202 try 203 { 204 task.execute(); 205 fail("Missing source file not detected"); 206 } 207 catch (BuildException e) 208 { 209 } 211 } 212 213 216 public void testInvalidProperties() 217 { 218 try 219 { 220 task.setSrcfile(new File ("test.in")); 221 task.setDestfile(new File ("test.out")); 222 task.setProperties(new File ("x2ui34")); 223 task.validateParameters(); 224 fail("Invalid parameters not detected"); 225 } 226 catch (BuildException e) 227 { 228 } 230 } 231 232 235 public void testFileset() 236 { 237 FileSet fileset = new FileSet(); 238 fileset.setDir(new File (testDir, "ant")); 239 240 task.addFileset(fileset); 241 task.setDestdir(new File (tempDir)); 242 243 task.execute(); 244 245 assertTrue("Expected output file not created", new File (tempDir, "file1.html").exists()); 246 assertTrue("Expected output file not created", new File (tempDir, "file2.html").exists()); 247 248 new File (tempDir, "file1.html").delete(); 249 new File (tempDir, "file2.html").delete(); 250 } 251 252 255 public void testFilesetWithDirStructure() 256 { 257 FileSet fileset = new FileSet(); 258 fileset.setDir(new File (testDir)); 259 fileset.setIncludes("ant/*.html"); 260 261 task.addFileset(fileset); 262 task.setDestdir(new File (tempDir)); 263 264 task.execute(); 265 266 assertTrue("Expected output file not created", new File (tempDir, "ant/file1.html").exists()); 267 assertTrue("Expected output file not created", new File (tempDir, "ant/file2.html").exists()); 268 269 new File (tempDir, "ant/file1.html").delete(); 270 new File (tempDir, "ant/file2.html").delete(); 271 new File (tempDir, "ant").delete(); 272 } 273 274 277 public void testFilesetWithDirStructureFlatten() 278 { 279 FileSet fileset = new FileSet(); 280 fileset.setDir(new File (testDir)); 281 fileset.setIncludes("ant/*.html"); 282 283 task.addFileset(fileset); 284 task.setDestdir(new File (tempDir)); 285 task.setFlatten(true); 286 287 task.execute(); 288 289 assertTrue("Expected output file not created", new File (tempDir, "file1.html").exists()); 290 assertTrue("Expected output file not created", new File (tempDir, "file2.html").exists()); 291 292 new File (tempDir, "file1.html").delete(); 293 new File (tempDir, "file2.html").delete(); 294 } 295 296 299 public void testWithParameters() 300 { 301 FileSet fileset = new FileSet(); 302 fileset.setDir(new File (testDir)); 303 fileset.setIncludes("ant/*1.html"); 304 305 task.addFileset(fileset); 306 task.setDestdir(new File (tempDir)); 307 task.setFlatten(true); 308 Parameter parameter = new Parameter(); 309 parameter.setName("tidy-mark"); 310 parameter.setValue("false"); 311 task.addConfiguredParameter(parameter); 312 task.execute(); 313 314 assertTrue("Expected output file not created", new File (tempDir, "file1.html").exists()); 315 316 try 317 { 318 Reader reader = new FileReader (new File (tempDir, "file1.html")); 319 String output = FileUtils.readFully(reader); 320 reader.close(); 321 322 assertTrue("Configured parameter doesn't have effect on output.", output.indexOf("generator") == -1); 324 } 325 catch (IOException e) 326 { 327 fail("Unable to read generated file."); 328 } 329 330 new File (tempDir, "file1.html").delete(); 331 } 332 333 336 public void testWithProperties() 337 { 338 FileSet fileset = new FileSet(); 339 fileset.setDir(new File (testDir)); 340 fileset.setIncludes("ant/*1.html"); 341 342 task.addFileset(fileset); 343 task.setDestdir(new File (tempDir)); 344 task.setFlatten(true); 345 task.setProperties(new File (testDir, "default.cfg")); 346 347 task.execute(); 348 349 assertTrue("Expected output file not created", new File (tempDir, "file1.html").exists()); 350 351 try 352 { 353 Reader reader = new FileReader (new File (tempDir, "file1.html")); 354 String output = FileUtils.readFully(reader); 355 reader.close(); 356 357 assertTrue("Configured parameter doesn't have effect on output.", output.indexOf("generator") == -1); 359 } 360 catch (IOException e) 361 { 362 fail("Unable to read generated file."); 363 } 364 365 new File (tempDir, "file1.html").delete(); 366 } 367 368 371 public void testFailonerrorFalse() 372 { 373 task.setSrcfile(new File (testDir, "ant/file3.html")); 374 task.setDestdir(new File (tempDir)); 375 task.setFailonerror(false); 376 377 task.execute(); 378 379 } 381 382 385 public void testFailonerrorTrue() 386 { 387 task.setSrcfile(new File (testDir, "ant/file3.html")); 388 task.setDestdir(new File (tempDir)); 389 task.setFailonerror(true); 390 391 try 392 { 393 task.execute(); 394 fail("Expected BuildException not thrown."); 395 } 396 catch (BuildException e) 397 { 398 } 400 } 401 402 405 public void testSrcfileDestDir() 406 { 407 task.setSrcfile(new File (testDir, "ant/file1.html")); 408 task.setDestdir(new File (tempDir)); 409 task.setFailonerror(true); 410 411 task.execute(); 412 413 assertTrue("Expected output file not created", new File (tempDir, "file1.html").exists()); 414 415 new File (tempDir, "file1.html").delete(); 416 } 417 418 421 public void testSrcfileDestFile() 422 { 423 task.setSrcfile(new File (testDir, "ant/file1.html")); 424 task.setDestfile(new File (tempDir, "newfile.html")); 425 task.setFailonerror(true); 426 427 task.execute(); 428 429 assertTrue("Expected output file not created", new File (tempDir, "newfile.html").exists()); 430 assertFalse("Expected output file is a dir!", new File (tempDir, "newfile.html").isDirectory()); 431 432 new File (tempDir, "newfile.html").delete(); 433 } 434 435 } | Popular Tags |