Package com.salas.bb.views.feeds.html

Source Code of com.salas.bb.views.feeds.html.TestHTMLFeedDisplay

// BlogBridge -- RSS feed reader, manager, and web based service
// Copyright (C) 2002-2006 by R. Pito Salas
//
// This program is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free Software Foundation;
// either version 2 of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with this program;
// if not, write to the Free Software Foundation, Inc., 59 Temple Place,
// Suite 330, Boston, MA 02111-1307 USA
//
// Contact: R. Pito Salas
// mailto:pitosalas@users.sourceforge.net
// More information: about BlogBridge
// http://www.blogbridge.com
// http://sourceforge.net/projects/blogbridge
//
// $Id: TestHTMLFeedDisplay.java,v 1.10 2008/02/28 15:59:50 spyromus Exp $
//

package com.salas.bb.views.feeds.html;

import com.jgoodies.binding.value.ValueHolder;
import com.jgoodies.uif.util.ResourceUtils;
import com.salas.bb.domain.DirectFeed;
import com.salas.bb.domain.StandardArticle;
import com.salas.bb.views.feeds.AbstractFeedDisplayTestCase;
import com.salas.bb.views.feeds.GroupsSetup;

import javax.swing.*;
import java.awt.*;
import java.lang.reflect.InvocationTargetException;
import java.util.ResourceBundle;

/**
* This suite contains tests for <code>HTMLFeedView</code> unit.
*/
public class TestHTMLFeedDisplay extends AbstractFeedDisplayTestCase
{
    private HTMLFeedDisplay    view;
    private StandardArticle article1;
    private StandardArticle article2;
    private StandardArticle article3;
    private DirectFeed      feed;

    static {
        ResourceUtils.setBundle(ResourceBundle.getBundle("Resource"));
    }

    protected void setUp()
        throws Exception
    {
        super.setUp();

        feed = new DirectFeed();

        view = new HTMLFeedDisplay(new SampleHTMLFeedDisplayConfig(), new ValueHolder(0), new ValueHolder(0));
        view.setFeed(feed);

        article1 = createArticle(DELTA_TOMORROW);
        article2 = createArticle(DELTA_30_DAYS_AGO);
        article3 = createArticle(DELTA_30_DAYS_AGO + DAY);
    }

    /**
     * Tests initial state.
     */
    public void testInitialState()
    {
        Component[] components = view.getComponents();

        // Adding one for no-content pane
        assertEquals("Not all groups are there.", GroupsSetup.getGroupsCount() + 1, components.length);
        for (int i = 0; i < components.length - 1; i++)
        {
            Component component = components[i];
            assertTrue("Component isn't a group.", component instanceof ArticlesGroup);
            assertEquals("Wrong group name.", GroupsSetup.getGroupTitle(i), component.getName());
        }
    }

    /**
     * Waits for all EDT events to be processed.
     */
    private void waitForEDT()
    {
        try
        {
            SwingUtilities.invokeAndWait(new Runnable()
            {
                public void run() { }
            });
        } catch (InterruptedException e)
        {
            e.printStackTrace();
            fail();
        } catch (InvocationTargetException e)
        {
            e.printStackTrace();
            fail();
        }
    }

    /**
     * Checks the structure of view.
     *
     * @param aView         view.
     * @param aStructure    list of structure elements: 'a' - article view, 'g' - group view.
     */
    private void assertView(HTMLFeedDisplay aView, char[] aStructure)
    {
        Component[] components = aView.getComponents();

        assertEquals("Wrong number of structural elements.", aStructure.length, components.length);

        for (int i = 0; i < components.length; i++)
        {
            Component component = components[i];
            char el = aStructure[i];

            if (el == 'a')
            {
                assertTrue("Article view should be found at position " + i,
                    component instanceof HTMLArticleDisplay);
            } else if (el == 'n')
            {
                assertTrue("No-content pane should be found at position " + i,
                    component instanceof JPanel);
            } else
            {
                assertTrue("Group view should be found at position " + i,
                    component instanceof ArticlesGroup);
            }
        }
    }
}
TOP

Related Classes of com.salas.bb.views.feeds.html.TestHTMLFeedDisplay

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.