|
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 NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.spi.java.project.support.ui; import java.awt.datatransfer.Transferable; import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.util.Arrays; import java.util.ResourceBundle; import javax.swing.Icon; import javax.swing.event.ChangeListener; import org.netbeans.api.project.SourceGroup; import org.netbeans.api.project.TestUtil; import org.netbeans.api.queries.VisibilityQuery; import org.netbeans.junit.NbTestCase; import org.netbeans.spi.queries.VisibilityQueryImplementation; import org.openide.filesystems.FileLock; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; import org.openide.loaders.DataObject; import org.openide.nodes.Children; import org.openide.nodes.Node; import org.openide.util.datatransfer.ExTransferable; import org.openide.util.datatransfer.PasteType; import org.openide.util.lookup.Lookups; public class PackageViewTest extends NbTestCase { static { System.setProperty("org.netbeans.spi.java.project.support.ui.packageView.TRUNCATE_PACKAGE_NAMES", "true"); } public PackageViewTest( String name ) { super( name ); } protected void setUp() throws Exception { super.setUp(); TestUtil.setLookup( Lookups.fixed( new Object[] { new VQImpl(), PackageViewTest.class.getClassLoader() } ) ); clearWorkDir(); } public void testFolders() throws Exception { // Prepare test data FileObject root = TestUtil.makeScratchDir( this ); // System.out.println("root " + root.getFileSystem().getClass() ); assertNull( "source folder should not exist yet", root.getFileObject( "src" ) ); // Create children SourceGroup group = new SimpleSourceGroup( FileUtil.createFolder( root, "src" ) ); Children ch = PackageView.createPackageView( group ).getChildren(); // Create folder FileUtil.createFolder( root, "src/a/b/c" ); assertNodes( ch, new String[] { "a.b.c", }, new int[] { 0, } ); // Create ignored folder FileUtil.createFolder( root, "src/KRTEK.folder" ); assertNodes( ch, new String[] { "a.b.c", }, new int[] { 0, } ); // Create some other folder FileUtil.createFolder( root, "src/e/f/g" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", }, new int[] { 0, 0 } ); // Add some ignored files/folders FileUtil.createFolder( root, "src/e/KRTEK" ); FileUtil.createFolder( root, "src/e/f/KRTEK.folder" ); FileUtil.createData( root, "src/e/f/KRTEK.file" ); FileUtil.createFolder( root, "src/e/f/g/KRTEK.folder" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", }, new int[] { 0, 0 } ); // Create file FileUtil.createData( root, "src/e/f/g/Some.java" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", }, new int[] { 0, 1 } ); // Create ignored file FileUtil.createData( root, "src/e/f/g/KRTEK.file" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", }, new int[] { 0, 1 } ); // Create file in ignored folder FileUtil.createData( root, "src/e/f/g/KRTEK.folder/Tag" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", }, new int[] { 0, 1 } ); // Add empty package and ignored package FileUtil.createFolder( root, "src/x/y/z/KRTEK" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", "x.y.z" }, new int[] { 0, 1, 0 } ); // Add file to folder FileObject x_y_z_some = FileUtil.createData( root, "src/x/y/z/Some.java" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", "x.y.z" }, new int[] { 0, 1, 1 } ); // Remove file from folder x_y_z_some.delete(); assertNodes( ch, new String[] { "a.b.c", "e.f.g", "x.y.z" }, new int[] { 0, 1, 0 } ); // Add file to super folder FileObject x_y_some = FileUtil.createData( root, "src/x/y/Some.java" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", "x.y", "x.y.z" }, new int[] { 0, 1, 1, 0 } ); // Remove file from superfolder x_y_some.delete(); assertNodes( ch, new String[] { "a.b.c", "e.f.g", "x.y.z" }, new int[] { 0, 1, 0 } ); // Add subfolder FileObject x_y_z_w = FileUtil.createFolder( root, "src/x/y/z/w" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", "x.y.z.w" }, new int[] { 0, 1, 0 } ); // Remove subfolder x_y_z_w.delete(); assertNodes( ch, new String[] { "a.b.c", "e.f.g", "x.y.z" }, new int[] { 0, 1, 0 } ); // Remove super folder FileObject x_y = root.getFileObject( "src/x/y" ); x_y.delete(); assertNodes( ch, new String[] { "a.b.c", "e.f.g", "x" }, new int[] { 0, 1, 0 } ); // Remove root folder FileUtil.createFolder( root, "src/x/v/w" ); assertNodes( ch, new String[] { "a.b.c", "e.f.g", "x.v.w" }, new int[] { 0, 1, 0 } ); FileObject x = root.getFileObject( "src/x" ); x.delete(); assertNodes( ch, new String[] { "a.b.c", "e.f.g" }, new int[] { 0, 1 } ); /* * Sometime fails in Jarda's DataObject container test * // Rename ignored file to unignored FileObject e_f_g_krtekFile = root.getFileObject( "src/e/f/g/KRTEK.file" ); FileLock krtekLock = e_f_g_krtekFile.lock(); e_f_g_krtekFile.rename( krtekLock, "ZIZALA.file", null ); krtekLock.releaseLock(); assertNodes( ch, new String[] { "a.b.c", "e.f.g" }, new int[] { 0, 2 } ); // Rename unignored to ignored file e_f_g_krtekFile = root.getFileObject( "src/e/f/g/ZIZALA.file" ); krtekLock = e_f_g_krtekFile.lock(); e_f_g_krtekFile.rename( krtekLock, "KRTEK.file", null ); krtekLock.releaseLock(); assertNodes( ch, new String[] { "a.b.c", "e.f.g" }, new int[] { 0, 1 } ); */ // Rename leaf folder FileObject e_f_g = root.getFileObject( "src/e/f/g" ); FileLock lock = e_f_g.lock(); e_f_g.rename( lock, "h", null ); lock.releaseLock(); assertNodes( ch, new String[] { "a.b.c", "e.f.h" }, new int[] { 0, 1 } ); // Rename ignored folder to unignored folder FileObject e_f_h_krtekFolder = root.getFileObject( "src/e/f/h/KRTEK.folder" ); lock = e_f_h_krtekFolder.lock(); e_f_h_krtekFolder.rename( lock, "ZIZALA", null ); lock.releaseLock(); assertNodes( ch, new String[] { "a.b.c", "e.f.h", "e.f.h.ZIZALA" }, new int[] { 0, 1, 1 } ); // Rename unignored folder back to ignored folder e_f_h_krtekFolder = root.getFileObject( "src/e/f/h/ZIZALA" ); lock = e_f_h_krtekFolder.lock(); e_f_h_krtekFolder.rename( lock, "KRTEK.folder", null ); lock.releaseLock(); assertNodes( ch, new String[] { "a.b.c", "e.f.h" }, new int[] { 0, 1 } ); // Rename super folder FileUtil.createFolder( root, "src/e/f/g" ); FileUtil.createFolder( root, "src/e/f/i" ); FileObject e_f = root.getFileObject( "src/e/f" ); lock = e_f.lock(); e_f.rename( lock, "r", null ); lock.releaseLock(); assertNodes( ch, new String[] { "a.b.c", "e.r.g", "e.r.h", "e.r.i" }, new int[] { 0, 0, 1, 0 } ); // Rename rootfolder FileObject e = root.getFileObject( "src/e/" ); lock = e.lock(); e.rename( lock, "t", null ); lock.releaseLock(); assertNodes( ch, new String[] { "a.b.c", "t.r.g", "t.r.h", "t.r.i" }, new int[] { 0, 0, 1, 0 } ); // Test truncated package names FileUtil.createFolder(root, "src/org/foo/something/whatever"); assertNodes( ch, new String[] { "a.b.c", "o.foo.som.whatever", "t.r.g", "t.r.h", "t.r.i" }, new int[] { 0, 0, 0, 1, 0 } ); } public void testDefaultPackage() throws Exception { // Prepare test data FileObject root = TestUtil.makeScratchDir( this ); // System.out.println("root " + root.getFileSystem().getClass() ); // Create children SourceGroup group = new SimpleSourceGroup( FileUtil.createFolder( root, "src" ) ); Children ch = PackageView.createPackageView( group ).getChildren(); // Default package should be there assertNodes( ch, new String[] { " |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 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.