📄 trackbacktest.java
字号:
/* * Copyright (c) 2003-2006, Simon Brown * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * - Neither the name of Pebble nor the names of its contributors may * be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */package net.sourceforge.pebble.domain;import net.sourceforge.pebble.api.event.trackback.TrackBackEvent;import net.sourceforge.pebble.api.event.trackback.TrackBackListener;/** * Tests for the TrackBack class. * * @author Simon Brown */public class TrackBackTest extends SingleBlogTestCase { private TrackBack trackback; protected void setUp() throws Exception { super.setUp(); trackback = new BlogEntry(blog).createTrackBack("Title", "Excerpt", "http://www.somedomain.com", "Some blog", "127.0.0.1"); trackback.setEventsEnabled(true); } /** * Test that a TrackBack instance can be created correctly. */ public void testConstructionOfSimpleInstance() { assertNotNull(trackback); assertEquals("Title", trackback.getTitle()); assertEquals("Excerpt", trackback.getExcerpt()); assertEquals("http://www.somedomain.com", trackback.getUrl()); assertEquals("Some blog", trackback.getBlogName()); assertEquals("127.0.0.1", trackback.getIpAddress()); assertNotNull(trackback.getDate()); assertEquals(trackback.getDate().getTime(), trackback.getId()); assertNotNull(trackback.getBlogEntry()); assertEquals(State.APPROVED, trackback.getState()); assertEquals("t/" + trackback.getBlogEntry().getId() + "/" + trackback.getId(), trackback.getGuid()); } /** * Tests that the title is set appropriately. */ public void testTitle() { assertEquals("Title", trackback.getTitle()); } /** * Tests that the title defaults to the URL is not specified. */ public void testTitleDefaultsToUrlWhenNotSpecified() { trackback.setTitle(""); assertEquals("http://www.somedomain.com", trackback.getTitle()); trackback.setTitle(null); assertEquals("http://www.somedomain.com", trackback.getTitle()); } /** * Tests that the excerpt can't be null. */ public void testExcerptNeverNull() { trackback.setExcerpt(""); assertEquals("", trackback.getExcerpt()); trackback.setExcerpt(null); assertEquals("", trackback.getExcerpt()); } /** * Tests that the blog name can't be null. */ public void testBlogNameNeverNull() { trackback.setBlogName(""); assertEquals("", trackback.getBlogName()); trackback.setBlogName(null); assertEquals("", trackback.getBlogName()); } /** * Tests the permalink for a TrackBack. */ public void testPermalink() { assertEquals(trackback.getBlogEntry().getPermalink() + "#trackback" + trackback.getId(), trackback.getPermalink()); } /** * Tests that a TrackBack can be cloned. */ public void testClone() { TrackBack clonedTrackBack = (TrackBack)trackback.clone(); assertEquals(trackback.getTitle(), clonedTrackBack.getTitle()); assertEquals(trackback.getExcerpt(), clonedTrackBack.getExcerpt()); assertEquals(trackback.getUrl(), clonedTrackBack.getUrl()); assertEquals(trackback.getBlogName(), clonedTrackBack.getBlogName()); assertEquals(trackback.getIpAddress(), clonedTrackBack.getIpAddress()); assertEquals(trackback.getDate(), clonedTrackBack.getDate()); assertEquals(trackback.getId(), clonedTrackBack.getId()); assertEquals(trackback.getState(), clonedTrackBack.getState()); assertEquals(trackback.getBlogEntry(), clonedTrackBack.getBlogEntry()); } /** * Tests that listeners are not fired when a TrackBack is marked as pending. */ public void testListenersFiredWhenTrackBackMarkedAsPending() { TrackBackListener listener = new TrackBackListener() { public void trackBackAdded(TrackBackEvent event) { fail(); } public void trackBackRemoved(TrackBackEvent event) { fail(); } public void trackBackApproved(TrackBackEvent event) { fail(); } public void trackBackRejected(TrackBackEvent event) { fail(); } }; blog.getEventListenerList().addTrackBackListener(listener); trackback.setPending(); } /** * Tests that a TrackBackEvent can be vetoed. */ public void trackBackEventCanBeVetoed() { // create 2 listeners, veto the event in the first and // fail if the second receives the event trackback.setPending(); TrackBackListener listener1 = new TrackBackListener() { public void trackBackAdded(TrackBackEvent event) { fail(); } public void trackBackRemoved(TrackBackEvent event) { fail(); } public void trackBackApproved(TrackBackEvent event) { event.veto(); } public void trackBackRejected(TrackBackEvent event) { fail(); } }; TrackBackListener listener2 = new TrackBackListener() { public void trackBackAdded(TrackBackEvent event) { fail(); } public void trackBackRemoved(TrackBackEvent event) { fail(); } public void trackBackApproved(TrackBackEvent event) { fail(); } public void trackBackRejected(TrackBackEvent event) { fail(); } }; blog.getEventListenerList().addTrackBackListener(listener1); blog.getEventListenerList().addTrackBackListener(listener2); trackback.setApproved(); } /** * Tests that listeners are not fired when a cloned TrackBack is approved. * Why? Because manipulating comments from a blog entry decorator will * generate excess events if not disabled. */ public void testListenersNotFiredWhenClonedTrackBackApproved() { trackback.setPending(); trackback = (TrackBack)trackback.clone(); TrackBackListener listener = new TrackBackListener() { public void trackBackAdded(TrackBackEvent event) { fail(); } public void trackBackRemoved(TrackBackEvent event) { fail(); } public void trackBackApproved(TrackBackEvent event) { fail(); } public void trackBackRejected(TrackBackEvent event) { fail(); } }; blog.getEventListenerList().addTrackBackListener(listener); trackback.setApproved(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -