|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is Forte for Java, Community Edition. The Initial
* Developer of the Original Code is Sun Microsystems, Inc. Portions
* Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.api.nodes2looks;
import org.openide.nodes.*;
import org.openide.cookies.InstanceCookie;
import org.openide.util.Lookup;
import org.openide.util.actions.SystemAction;
import org.netbeans.junit.*;
import junit.framework.*;
import org.netbeans.spi.looks.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.util.Collections;
/** Tests methods of the LookNode. Notice that the communication with look
* is tested using. LookNodeValuesTest. This class only tests additional
* methods.
*/
public class LookNodeTest extends NbTestCase {
// Sample looks
SampleLook sampleLook1;
SampleLook sampleLook2;
// The lookNode
Node lookNode;
private static final String NODE_NAME_1 = "Node name 1";
private static final String NODE_NAME_2 = "Node name 2";
// Represented object
SampleRepObject representedObject;
// Methods of testCase -----------------------------------------------------
public LookNodeTest(java.lang.String testName) {
super(testName);
}
public static void main(java.lang.String[] args) {
junit.textui.TestRunner.run(suite());
}
public static Test suite() {
TestSuite suite = new NbTestSuite(LookNodeTest.class);
return suite;
}
protected void setUp() throws Exception {
super.setUp();
sampleLook1 = new SampleLook( "First sample look" ) {
public String getName( Object representedObject, Lookup env ) {
return NODE_NAME_1;
}
};
sampleLook2 = new SampleLook( "Second sample look" ) {
public String getName( Object representedObject, Lookup env ) {
return NODE_NAME_2;
}
};
representedObject = new SampleRepObject( createGoldenValues() );
lookNode = Nodes.node( representedObject,
sampleLook1,
Selectors.selector( new SampleProvider( sampleLook1 ) ) );
}
protected void tearDown() throws Exception {
sampleLook1 = sampleLook2 = null;
lookNode = null;
representedObject = null;
super.tearDown();
}
// Test methods ------------------------------------------------------------
public void testGetRepresentedObject() {
SampleRepObject ro = (SampleRepObject)TestUtil.getRepresentedObject( lookNode );
if ( ro != representedObject ) {
fail("Bad represented object.");
}
}
public void testGetRepresentedObjectByInstanceCookie() throws Exception {
InstanceCookie.Of ic = (InstanceCookie.Of) lookNode.getLookup().lookup( InstanceCookie.Of.class );
assertTrue( "Bad represented object. ", ic.instanceCreate() == representedObject );
}
public void testSetLook() {
TestUtil.setLook( lookNode, sampleLook2 );
if ( TestUtil.getLook( lookNode ) != sampleLook2 ) {
fail( "Bad or no look not set." );
}
if ( lookNode.getName() != NODE_NAME_2 ) {
fail( "Bad name from look: " + lookNode.getName() );
}
TestUtil.setLook( lookNode, sampleLook1 );
if ( TestUtil.getLook( lookNode ) != sampleLook1 ) {
fail( "Bad or no look not set." );
}
if ( lookNode.getName() != NODE_NAME_1 ) {
fail( "Bad name from look: " + lookNode.getName() );
}
}
public void testGetLook() {
Look look = TestUtil.getLook( lookNode );
if ( look != sampleLook1 ) {
fail("Bad or no look on node");
}
}
public void testCloneNode() {
Look look = sampleLook2;
Node lookNode = Nodes.node(new Object(), look, Selectors.selector( new SampleProvider( look ) ) );
Node clonedNode = lookNode.cloneNode();
Node secondLevelClone = clonedNode.cloneNode();
assertTrue ("Cloned node must not be null!", clonedNode != null );
//assertTrue ("Cloned node must be a chameleon!", clonedNode.getBaseLook() == lookNode.getBaseLook ());
//assertTrue ("Second level clone has different hard look!", clonedNode.getBaseLook() == secondLevelClone.getBaseLook());
// assert("Second level clone has different hard look candidate!", clonedNode.getHardLookCandidate() == secondLevelClone.getHardLookCandidate());
// we do not have any parent node so we do not use chameleon look but rather hard look candidate
assertTrue ("Both clones must result in same getLook()!",
((org.netbeans.api.nodes2looks.LookNode)clonedNode).getLook() ==
((org.netbeans.api.nodes2looks.LookNode)secondLevelClone).getLook());
}
public void testGetActions() {
Action[] actions = lookNode.getActions();
assertEquals( "There should be 3 items", 3, actions.length );
assertNull( "First item is not SystemAction.", actions[0] );
assertNull( "Second item is separator", actions[1] );
assertEquals( "Third item is SystemAction.", GoldenValue.TestingAction1.class, actions[2].getClass() );
actions = lookNode.getActions( false );
assertEquals( "There should be 3 items", 3, actions.length );
assertEquals( "First item is Action.", TestBaseAction.class, actions[0].getClass() );
assertNull( "Second item is separator", actions[1] );
assertEquals( "Third item is SystemAction.", GoldenValue.TestingAction1.class, actions[2].getClass() );
}
public void testGetContextActions() {
Action[] actions = lookNode.getContextActions();
assertEquals( "There should be 3 items", 3, actions.length );
assertNull( "First item is not SystemAction.", actions[0] );
assertNull( "Second item is separator", actions[1] );
assertEquals( "Third item is SystemAction.", GoldenValue.TestingAction1.class, actions[2].getClass() );
actions = lookNode.getActions( true );
assertEquals( "There should be 3 items", 3, actions.length );
assertEquals( "First item is Action.", TestBaseAction.class, actions[0].getClass() );
assertNull( "Second item is separator", actions[1] );
assertEquals( "Third item is SystemAction.", GoldenValue.TestingAction1.class, actions[2].getClass() );
}
public void testGetDefaultAction() {
Action action = lookNode.getDefaultAction();
assertNull( "Default action is not SystemAction.", action );
action = lookNode.getPreferredAction();
assertEquals( "Default Action is Action.", TestBaseAction.class, action.getClass() );
}
public void testProperLookSelected() {
ProxyLookTest.ExceptionLook e1 =
new ProxyLookTest.ExceptionLook( "e1", IllegalArgumentException.class );
ProxyLookTest.ExceptionLook e2 =
new ProxyLookTest.ExceptionLook( "e2", ClassCastException.class );
ProxyLookTest.ExceptionLook e3 =
new ProxyLookTest.ExceptionLook( "e3", null );
LookSelector s1 = Selectors.array( new Look[] { e1, e2, e3 } );
LookSelector s2 = Selectors.array( new Look[] { e1, e2 } );
Node n1 = Nodes.node( "RO1", null, s1 );
Look l1 = TestUtil.getLook( n1 );
Node n2 = Nodes.node( "RO1", null, s2 );
Look l2 = TestUtil.getLook( n2 );
assertTrue( "Node shuld have the look e3 set. Was " + l1, l1 == e3 );
assertTrue( "Node shuld have the beanLook set. Was " + l2, l2 == Looks.bean() );
}
public void testSize() {
Look look = new SampleLook( "Second sample look" );
LookSelector selector = Selectors.selector( new SampleProvider( sampleLook1 ) );
SampleRepObject ro = new SampleRepObject( createGoldenValues() );
Node n = Nodes.node( ro, look, selector );
Object subtract[] = new Object[] {
look,
selector,
ro,
org.openide.util.Utilities.activeReferenceQueue(),
((LookNode)n).getCache(),
Collections.EMPTY_LIST,
Children.LEAF
};
assertSize( "Size of the node " , Collections.singleton( n ), 168, subtract );
n.getIcon( 0 );
assertSize( "Size of the node " , Collections.singleton( n ), 168, subtract );
n.getLookup ();
assertSize( "Size of the node " , Collections.singleton( n ), 504, subtract );
}
// Private helper methods --------------------------------------------------
private static GoldenValue[] createGoldenValues() {
GoldenValue goldenValues[] = new GoldenValue[] {
new GoldenValue( Look.GET_LOOKUP_ITEMS, GoldenValue.createGoldenLookupItems() ),
new GoldenValue( Look.GET_ACTIONS,
new Action[] { new TestBaseAction(), null, SystemAction.get( GoldenValue.TestingAction1.class ) } ),
new GoldenValue( Look.GET_CONTEXT_ACTIONS,
new Action[] { new TestBaseAction(), null, SystemAction.get( GoldenValue.TestingAction1.class ) } ),
new GoldenValue( Look.GET_DEFAULT_ACTION, new TestBaseAction() )
};
return goldenValues;
}
public static final class TestBaseAction extends AbstractAction {
public void actionPerformed(ActionEvent e) {
}
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.