/* * Jajuk * Copyright (C) The Jajuk Team * http://jajuk.info * * 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 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. * */ package org.jajuk.ui.views; import java.awt.Component; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ComponentEvent; import java.util.Set; import org.jajuk.JajukTestCase; import org.jajuk.TestHelpers; import org.jajuk.base.Album; import org.jajuk.base.Artist; import org.jajuk.base.Device; import org.jajuk.base.Directory; import org.jajuk.base.DirectoryManager; import org.jajuk.base.File; import org.jajuk.base.FileManager; import org.jajuk.base.Genre; import org.jajuk.base.Track; import org.jajuk.base.TrackManager; import org.jajuk.base.Type; import org.jajuk.base.Year; import org.jajuk.events.JajukEvent; import org.jajuk.events.JajukEvents; import org.jajuk.util.Conf; import org.jajuk.util.Const; /** * . */ public class TestCoverView extends JajukTestCase { /** * Test method for. * * {@link org.jajuk.ui.views.CoverView#componentResized(java.awt.event.ComponentEvent)} * . */ public final void testComponentResized() { CoverView view = new CoverView(); // this expects the UI to be available view.initUI(); view.componentResized(new ComponentEvent(new Component() { private static final long serialVersionUID = 1L; }, 9)); // resize immediately again to cover the time delay mechanism view.componentResized(new ComponentEvent(new Component() { private static final long serialVersionUID = 1L; }, 9)); } /** * Test method for {@link org.jajuk.ui.views.CoverView#CoverView()}. */ public final void testCoverView() { new CoverView(); } /** * Test method for. * * {@link org.jajuk.ui.views.CoverView#CoverView(org.jajuk.base.File)}. */ public final void testCoverViewFile() { new CoverView(getFile()); } /** * Gets the file. * * @return the file */ private File getFile() { Genre genre = TestHelpers.getGenre(); Album album = TestHelpers.getAlbum("name", 0); Artist artist = TestHelpers.getArtist("name"); Year year = TestHelpers.getYear(2000); Type type = TestHelpers.getType(); Track track = TrackManager.getInstance().registerTrack("name", album, genre, artist, 120, year, 1, type, 1); Device device = TestHelpers.getDevice(); Directory dir = DirectoryManager.getInstance().registerDirectory(device); File file = FileManager.getInstance().registerFile("test.tst", dir, track, 120, 70); return file; } /** * Test method for {@link org.jajuk.ui.views.CoverView#initUI()}. */ public final void testInitUI() { CoverView view = new CoverView(); view.initUI(); } /** * Test method for {@link org.jajuk.ui.views.CoverView#initUI(boolean)}. */ public final void testInitUIBoolean() { { CoverView view = new CoverView(); view.initUI(true); } { CoverView view = new CoverView(); view.initUI(false); } } /** * Test method for. * * {@link org.jajuk.ui.views.CoverView#actionPerformed(java.awt.event.ActionEvent)} * . */ public final void testActionPerformed() { CoverView view = new CoverView(); view.initUI(); // disable confirmations to not show UI during running tests Conf.setProperty(Const.CONF_CONFIRMATIONS_DELETE_COVER, "false"); // different source, will not trigger anything view.actionPerformed(new ActionEvent("testsource", 1, "test")); // now try to trigger actions on each of the components in the view recursiveActionPerformed(view, view); } /** * Recursive action performed. * * * @param cmp * @param view */ private void recursiveActionPerformed(Container cmp, CoverView view) { for (int i = 0; i < cmp.getComponentCount(); i++) { // first call actionPerfomed with this component view.actionPerformed(new ActionEvent(cmp.getComponent(i), 1, "test")); // then again with CTRL-Mask set to trigger all parts view.actionPerformed(new ActionEvent(cmp.getComponent(i), 1, "test", ActionEvent.CTRL_MASK)); // set // CTRL_MASK // to // trigger // all // code // then recusively step into this components if (cmp.getComponent(i) instanceof Container) { recursiveActionPerformed((Container) cmp.getComponent(i), view); } } } /** * Test method for. * * {@link org.jajuk.ui.views.CoverView#createQuery(org.jajuk.base.File)}. */ public final void testCreateQuery() { CoverView view = new CoverView(); // NPE: view.createQuery(null); view.createQuery(getFile()); } /** * Test method for {@link org.jajuk.ui.views.CoverView#getDesc()}. */ public final void testGetDesc() { CoverView view = new CoverView(); assertNotNull(view.getDesc()); assertFalse(view.getDesc().isEmpty()); } /** * Test method for {@link org.jajuk.ui.views.CoverView#getRegistrationKeys()}. */ public final void testGetRegistrationKeys() { CoverView view = new CoverView(); Set<JajukEvents> eventSubjectSet = view.getRegistrationKeys(); assertNotNull(eventSubjectSet); assertTrue(eventSubjectSet.size() > 0); } /** * Test method for {@link org.jajuk.ui.views.CoverView#getCurrentImage()}. * * @throws Exception the exception */ public final void testGetCurrentImage() throws Exception { CoverView view = new CoverView(); // need to cover initialized view.initUI(); // there is always a dummy image... assertNotNull(view.getCurrentImage()); } /** * Test method for. * * {@link org.jajuk.ui.views.CoverView#update(org.jajuk.events.JajukEvent)}. */ public final void testUpdateJajukEvent() { CoverView view = new CoverView(); // this expects the UI to be available view.initUI(); // this is not catched currently, but should still not cause trouble view.update(new JajukEvent(JajukEvents.ALARMS_CHANGE)); // these are catched and handled currently view.update(new JajukEvent(JajukEvents.FILE_LAUNCHED)); view.update(new JajukEvent(JajukEvents.WEBRADIO_LAUNCHED)); view.update(new JajukEvent(JajukEvents.ZERO)); view.update(new JajukEvent(JajukEvents.PLAYER_STOP)); view.update(new JajukEvent(JajukEvents.COVER_NEED_REFRESH)); } }