1 20 21 package com.methodhead.shim; 22 23 import java.util.*; 24 import java.sql.*; 25 import java.io.*; 26 import junit.framework.*; 27 import org.apache.log4j.*; 28 import com.methodhead.persistable.*; 29 import com.methodhead.test.*; 30 import com.methodhead.sitecontext.*; 31 32 public class PageTest extends TestCase { 33 34 static { 35 TestUtils.initDb(); 36 TestUtils.initLogger(); 37 } 38 39 public PageTest( String name ) { 40 super( name ); 41 } 42 43 private Page page = null; 44 private Page page2 = null; 45 private Panel panel = null; 46 47 SiteContext siteContext1_ = null; 48 SiteContext siteContext2_ = null; 49 Page page1_ = null; 50 Page page2_ = null; 51 Page page3_ = null; 52 53 protected void createData() { 54 Panel panel = null; 55 56 siteContext1_ = new SiteContext(); 57 siteContext1_.set( "path", "sitecontext1" ); 58 siteContext1_.saveNew(); 59 60 panel = new Panel(); 61 panel.setName( "body" ); 62 panel.setModuleClass( "com.methodhead.shim.MockModule" ); 63 64 page1_ = new Page(); 65 page1_.set( "title", "Page1" ); 66 page1_.set( "alttitle", "altPage1" ); 67 page1_.set( "aliasname", "page1" ); 68 page1_.set( "template", "template.jsp" ); 69 page1_.set( "metadescription", "metadescription" ); 70 page1_.set( "metakeywords", "metakeywords" ); 71 page1_.addPanel( panel ); 72 page1_.setSiteContext( siteContext1_ ); 73 page1_.saveNew(); 74 75 siteContext2_ = new SiteContext(); 76 siteContext2_.set( "path", "sitecontext2" ); 77 siteContext2_.saveNew(); 78 79 panel = new Panel(); 80 panel.setName( "body" ); 81 panel.setModuleClass( "com.methodhead.shim.MockModule" ); 82 83 page2_ = new Page(); 84 page2_.set( "title", "Page2" ); 85 page2_.set( "aliasname", "page2" ); 86 page2_.set( "template", "template.jsp" ); 87 page2_.addPanel( panel ); 88 page2_.setSiteContext( siteContext2_ ); 89 page2_.saveNew(); 90 91 panel = new Panel(); 92 panel.setName( "body" ); 93 panel.setModuleClass( "com.methodhead.shim.MockModule" ); 94 95 page3_ = new Page(); 96 page3_.set( "title", "Page3" ); 97 page3_.set( "aliasname", "page3" ); 98 page3_.set( "template", "template.jsp" ); 99 page3_.addPanel( panel ); 100 page3_.setSiteContext( siteContext2_ ); 101 page3_.saveNew(); 102 } 103 104 protected void setUp() { 105 try { 107 ConnectionSingleton.runBatchUpdate( new FileReader( "webapp/WEB-INF/db/transfer-reset.sql" ) ); 108 } 109 catch ( Exception e ) { 110 fail( e.getMessage() ); 111 } 112 } 113 114 protected void tearDown() { 115 } 116 117 public void testToString() { 118 try { 119 page = new Page(); 120 assertEquals( "", page.toString() ); 121 122 page.setString( "title", "Page1" ); 123 assertEquals( "Page1", page.toString() ); 124 } 125 catch ( Exception e ) { 126 e.printStackTrace(); 127 fail(); 128 } 129 } 130 131 public void testGetSiteContext() { 132 try { 133 Page page = null; 134 SiteContext siteContext = null; 135 136 page = new Page(); 137 siteContext = SiteContext.getDefaultContext(); 138 139 try { 143 page.getSiteContext(); 144 fail( "Page.getSiteContext() did not throw an exception." ); 145 } 146 catch ( ShimException e ) { 147 } 149 150 page.setSiteContext( siteContext ); 151 152 assertNotNull( page.getSiteContext() ); 153 assertEquals( siteContext, page.getSiteContext() ); 154 } 155 catch ( Exception e ) { 156 e.printStackTrace(); 157 fail(); 158 } 159 } 160 161 public void testAddPanel() { 162 try { 163 Page page = null; 164 Panel panel = null; 165 Map panelMap = null; 166 167 page = new Page(); 171 panel = new Panel(); 172 panel.setName( "body" ); 173 panel.setModuleClass( "com.methodhead.shim.MockModule" ); 174 page.addPanel( panel ); 175 panelMap = page.getPanels(); 176 177 assertNotNull( panelMap ); 178 assertEquals( 1, panelMap.keySet().size() ); 179 180 panel = ( Panel )panelMap.get( "body" ); 181 182 assertNotNull( panel ); 183 assertEquals( "body", panel.getName() ); 184 assertEquals( "com.methodhead.shim.MockModule", panel.getModuleClass() ); 185 186 try { 190 page.addPanel( panel ); 191 fail( "Page.addPanel() did not through an exception." ); 192 } 193 catch ( ShimException e ) { 194 } 196 } 197 catch ( Exception e ) { 198 e.printStackTrace(); 199 fail(); 200 } 201 } 202 203 public void testSaveNew() { 204 try { 205 Page page = null; 206 Panel panel = null; 207 ResultSet rs = null; 208 209 page = new Page(); 213 page.setString( "title", "Test" ); 214 page.setString( "template", "template.jsp" ); 215 page.setString( "aliasname", "test" ); 216 panel = new Panel(); 217 panel.setName( "body" ); 218 panel.setModuleClass( "com.methodhead.shim.MockModule" ); 219 page.addPanel( panel ); 220 page.setSiteContext( SiteContext.getDefaultContext() ); 221 page.saveNew(); 222 rs = ConnectionSingleton.runQuery( "SELECT sitecontext_id FROM shim_page WHERE id=" + page.getInt( "id" ) ); 223 224 assertTrue( rs.next() ); 225 assertEquals( 0, rs.getInt( "sitecontext_id" ) ); 226 assertTrue( !rs.next() ); 227 228 ConnectionSingleton.close( rs ); 229 rs = ConnectionSingleton.runQuery( "SELECT name,module FROM shim_panel WHERE page_id=" + page.getInt( "id" ) ); 230 231 assertTrue( rs.next() ); 232 assertEquals( "body", rs.getString( "name" ) ); 233 assertEquals( "com.methodhead.shim.MockModule", rs.getString( "module" ) ); 234 assertTrue( !rs.next() ); 235 236 ConnectionSingleton.close( rs ); 237 } 238 catch ( Exception e ) { 239 e.printStackTrace(); 240 fail(); 241 } 242 } 243 244 public void testLoad() { 245 try { 246 createData(); 247 248 try { 252 page = new Page(); 253 page.setSiteContext( SiteContext.getDefaultContext() ); 254 page.load( page1_.getKey() ); 255 fail( "No exception thrown." ); 256 } 257 catch ( Exception e ) { 258 } 259 260 page = new Page(); 264 page.setSiteContext( siteContext1_ ); 265 page.load( page1_.getKey() ); 266 267 assertEquals( page1_.getString( "title" ), page.getString( "title" ) ); 268 assertEquals( page1_.getString( "aliasname" ), page.getString( "aliasname" ) ); 269 assertEquals( 1, page.getPanels().keySet().size() ); 270 271 panel = ( Panel )page.getPanels().get( "body" ); 272 273 assertEquals( "com.methodhead.shim.MockModule", panel.getModuleClass() ); 274 } 275 catch ( Exception e ) { 276 e.printStackTrace(); 277 fail(); 278 } 279 } 280 281 public void testSave() { 282 try { 283 Page page = null; 284 Panel panel = null; 285 createData(); 286 287 page = new Page(); 291 page.setSiteContext( siteContext1_ ); 292 page.load( page1_.getKey() ); 293 page.setString( "title", "Page2" ); 294 page.setString( "aliasname", "page2" ); 295 panel = ( Panel )page.getPanels().get( "body" ); 296 panel.setName( "body" ); 297 panel.setModuleClass( "com.methodhead.shim.FooModule" ); 298 page.save(); 299 page = new Page(); 300 page.setSiteContext( siteContext1_ ); 301 page.load( page1_.getKey() ); 302 303 assertEquals( "Page2", page.getString( "title" ) ); 304 assertEquals( "page2", page.getString( "aliasname" ) ); 305 306 panel = ( Panel )page.getPanels().get( "body" ); 307 308 assertEquals( "com.methodhead.shim.FooModule", panel.getModuleClass() ); 309 } 310 catch ( Exception e ) { 311 e.printStackTrace(); 312 fail(); 313 } 314 } 315 316 public void testDelete() { 317 try { 318 Page page = null; 319 ResultSet rs = null; 320 createData(); 321 322 MockModule.setDestroyed( false ); 326 page = new Page(); 327 page.setSiteContext( siteContext1_ ); 328 page.loadFull( page1_.getKey() ); 329 page.delete(); 330 rs = ConnectionSingleton.runQuery( "SELECT title FROM shim_page WHERE id=" + page1_.getInt( "id" ) ); 331 332 assertTrue( !rs.next() ); 333 334 ConnectionSingleton.close( rs ); 335 rs = ConnectionSingleton.runQuery( "SELECT name FROM shim_panel WHERE page_id=" + page1_.getInt( "id" ) ); 336 337 assertTrue( !rs.next() ); 338 339 assertTrue( MockModule.isDestroyed() ); 340 341 ConnectionSingleton.close( rs ); 342 } 343 catch ( Exception e ) { 344 e.printStackTrace(); 345 fail(); 346 } 347 } 348 349 public void testLoadFull() { 350 try { 351 Page page = null; 352 Panel panel = null; 353 createData(); 354 355 page = new Page(); 359 page.setSiteContext( siteContext1_ ); 360 page.loadFull( page1_.getKey() ); 361 362 assertEquals( page1_.getString( "title" ), page.getString( "title" ) ); 363 assertEquals( page1_.getString( "aliasname" ), page.getString( "aliasname" ) ); 364 assertEquals( 1, page.getPanels().keySet().size() ); 365 366 panel = ( Panel )page.getPanels().get( "body" ); 367 368 assertNotNull( panel.getModule() ); 369 assertEquals( "com.methodhead.shim.MockModule", panel.getModule().getClass().getName() ); 370 } 371 catch ( Exception e ) { 372 e.printStackTrace(); 373 fail(); 374 } 375 } 376 377 public void testCompareTo() { 378 try { 379 Page page1 = new Page(); 380 page1.setString( "title", "page1" ); 381 382 Page page2 = new Page(); 383 page2.setString( "title", "Page2" ); 384 385 Page page3 = new Page(); 386 page3.setString( "title", "Page3" ); 387 388 assertTrue( page1.compareTo( null ) > 0 ); 389 assertTrue( page1.compareTo( "foo" ) > 0 ); 390 assertTrue( page1.compareTo( page2 ) < 0 ); 391 assertEquals( 0, page1.compareTo( page1 ) ); 392 assertTrue( page3.compareTo( page1 ) > 0 ); 393 } 394 catch ( Exception e ) { 395 e.printStackTrace(); 396 fail(); 397 } 398 } 399 400 public void testLoadAll() { 401 try { 402 Page page = null; 403 Panel panel = null; 404 List l = null; 405 406 createData(); 407 408 page = new Page(); 412 page.setSiteContext( siteContext1_ ); 413 l = page.loadAll(); 414 415 assertNotNull( l ); 416 assertEquals( 1, l.size() ); 417 418 page = ( Page )l.get( 0 ); 419 420 assertEquals( page1_.getInt( "id" ), page.getInt( "id" ) ); 421 assertEquals( siteContext1_, page.getSiteContext() ); 422 423 page.setSiteContext( siteContext2_ ); 424 l = page.loadAll(); 425 426 assertNotNull( l ); 427 assertEquals( 2, l.size() ); 428 429 page = ( Page )l.get( 0 ); 430 431 assertEquals( page2_.getInt( "id" ), page.getInt( "id" ) ); 432 assertEquals( siteContext2_, page.getSiteContext() ); 433 434 page = ( Page )l.get( 1 ); 435 436 assertEquals( page3_.getInt( "id" ), page.getInt( "id" ) ); 437 assertEquals( siteContext2_, page.getSiteContext() ); 438 } 439 catch ( Exception e ) { 440 e.printStackTrace(); 441 fail(); 442 } 443 } 444 445 public void testLoadForAlias() { 446 try { 447 createData(); 448 449 page = new Page(); 450 page.setSiteContext( siteContext1_ ); 451 page.loadForAlias( "page1" ); 452 453 assertEquals( page1_.getString( "title" ), page.getString( "title" ) ); 454 assertEquals( page1_.getString( "aliasname" ), page.getString( "aliasname" ) ); 455 assertEquals( 1, page.getPanels().keySet().size() ); 456 457 panel = ( Panel )page.getPanels().get( "body" ); 458 459 assertEquals( "com.methodhead.shim.MockModule", panel.getModuleClass() ); 460 } 461 catch ( Exception e ) { 462 e.printStackTrace(); 463 fail(); 464 } 465 } 466 467 public void testSetDefaultAliasName() { 468 try { 469 createData(); 470 471 page = new Page(); 472 page.setSiteContext( siteContext1_ ); 473 474 try { 475 page.setString( "title", "" ); 476 page.setDefaultAliasName(); 477 fail( "Exception not thrown." ); 478 } 479 catch ( Exception e ) {} 480 481 page.setString( "title", "Test" ); 482 page.setDefaultAliasName(); 483 assertEquals( "test", page.getString( "aliasname" ) ); 484 485 page.setString( "title", "Test Page" ); 486 page.setDefaultAliasName(); 487 assertEquals( "testpage", page.getString( "aliasname" ) ); 488 489 page.setString( "title", "Test$Page!" ); 490 page.setDefaultAliasName(); 491 assertEquals( "testpage", page.getString( "aliasname" ) ); 492 493 page.setString( "title", "Page1" ); 494 page.setDefaultAliasName(); 495 assertEquals( "page12", page.getString( "aliasname" ) ); 496 497 page1_.setDefaultAliasName(); 498 assertEquals( "page1", page1_.getString( "aliasname" ) ); 499 } 500 catch ( Exception e ) { 501 e.printStackTrace(); 502 fail(); 503 } 504 } 505 506 public void testLoadFullForAlias() { 507 try { 508 Page page = null; 509 Panel panel = null; 510 createData(); 511 512 page = new Page(); 516 page.setSiteContext( siteContext1_ ); 517 page.loadFullForAlias( "page1" ); 518 519 assertEquals( page1_.getString( "title" ), page.getString( "title" ) ); 520 assertEquals( page1_.getString( "aliasname" ), page.getString( "aliasname" ) ); 521 assertEquals( 1, page.getPanels().keySet().size() ); 522 523 panel = ( Panel )page.getPanels().get( "body" ); 524 525 assertNotNull( panel.getModule() ); 526 assertEquals( "com.methodhead.shim.MockModule", panel.getModule().getClass().getName() ); 527 } 528 catch ( Exception e ) { 529 e.printStackTrace(); 530 fail(); 531 } 532 } 533 534 public void testCopy() { 535 try { 536 createData(); 537 MockModule.setCopied( false ); 538 539 page = new Page(); 540 page.setSiteContext( siteContext1_ ); 541 page.loadFull( page1_.getKey() ); 542 543 page2 = page.copy(); 544 assertNotNull( page2 ); 545 assertEquals( 4, page2.getInt( "id" ) ); 546 assertEquals( "Page1", page2.getString( "title" ) ); 547 assertEquals( "altPage1", page2.getString( "alttitle" ) ); 548 assertEquals( "page12", page2.getString( "aliasname" ) ); 549 assertEquals( "metadescription", page2.getString( "metadescription" ) ); 550 assertEquals( "metakeywords", page2.getString( "metakeywords" ) ); 551 552 panel = ( Panel )page2.getPanels().get( "body" ); 553 assertNotNull( panel ); 554 assertEquals( "body", panel.getName() ); 555 assertEquals( "com.methodhead.shim.MockModule", panel.getModuleClass() ); 556 557 assertTrue( MockModule.isCopied() ); 558 } 559 catch ( Exception e ) { 560 e.printStackTrace(); 561 fail(); 562 } 563 } 564 } 565 | Popular Tags |