Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2346)

Unified Diff: editor/tools/plugins/com.google.dart.tools.core_test/src/com/google/dart/tools/core/pub/PubBuildParticipantTest.java

Issue 11735003: show package version information in Files View (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: editor/tools/plugins/com.google.dart.tools.core_test/src/com/google/dart/tools/core/pub/PubBuildParticipantTest.java
===================================================================
--- editor/tools/plugins/com.google.dart.tools.core_test/src/com/google/dart/tools/core/pub/PubBuildParticipantTest.java (revision 16570)
+++ editor/tools/plugins/com.google.dart.tools.core_test/src/com/google/dart/tools/core/pub/PubBuildParticipantTest.java (working copy)
@@ -18,9 +18,12 @@
import com.google.dart.tools.core.internal.builder.TestProjects;
import com.google.dart.tools.core.mock.MockContainer;
import com.google.dart.tools.core.mock.MockDelta;
+import com.google.dart.tools.core.mock.MockFile;
+import com.google.dart.tools.core.mock.MockFolder;
import static com.google.dart.tools.core.DartCore.PACKAGES_DIRECTORY_NAME;
import static com.google.dart.tools.core.DartCore.PUBSPEC_FILE_NAME;
+import static com.google.dart.tools.core.DartCore.PUBSPEC_LOCK_FILE_NAME;
import static com.google.dart.tools.core.internal.builder.TestProjects.MONITOR;
import static com.google.dart.tools.core.internal.builder.TestProjects.newEmptyProject;
import static com.google.dart.tools.core.internal.builder.TestProjects.newPubProject1;
@@ -28,13 +31,13 @@
import junit.framework.TestCase;
import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IProgressMonitor;
import static org.eclipse.core.resources.IResourceDelta.ADDED;
import static org.eclipse.core.resources.IResourceDelta.REMOVED;
-import java.util.ArrayList;
-
public class PubBuildParticipantTest extends TestCase {
/**
@@ -43,39 +46,56 @@
*/
private static class Target extends PubBuildParticipant {
- private ArrayList<IContainer> actual = new ArrayList<IContainer>();
+ private IContainer runPubContainer;
+ private IResource lockFileProcessed;
- public void assertCalls(IContainer... expected) {
- if (expected.length == actual.size()) {
- boolean success = true;
- for (IContainer container : expected) {
- if (!actual.contains(container)) {
- success = false;
- break;
- }
- }
- if (success) {
- return;
- }
+ public void assertProcessLockFile(IResource expected) {
+ boolean success = true;
+ if (expected != lockFileProcessed) {
+ success = false;
}
- PrintStringWriter writer = new PrintStringWriter();
- writer.println("expected:");
- for (IContainer container : expected) {
- writer.println(" " + container);
+ if (success) {
+ return;
}
- writer.println("actual:");
- for (IContainer container : actual) {
- writer.println(" " + container);
+ printFailMessage(expected, lockFileProcessed);
+
+ }
+
+ public void assertRunPub(IContainer expected) {
+ boolean success = true;
+ if (expected != runPubContainer) {
+ success = false;
}
- fail(writer.toString().trim());
+ if (success) {
+ return;
+ }
+ printFailMessage(expected, runPubContainer);
}
@Override
+ protected void processLockFileContents(IResource lockFile, IProject project,
+ IProgressMonitor monitor) {
+ assertNotNull(lockFile);
+ assertNotNull(project);
+ assertNotNull(monitor);
+ lockFileProcessed = lockFile;
+ }
+
+ @Override
protected void runPub(IContainer container, IProgressMonitor monitor) {
assertNotNull(container);
assertNotNull(monitor);
- actual.add(container);
+ runPubContainer = container;
}
+
+ private void printFailMessage(Object expected, Object actual) {
+ PrintStringWriter writer = new PrintStringWriter();
+ writer.println("expected:");
+ writer.println(" " + expected);
+ writer.println("actual:");
+ writer.println(" " + actual);
+ fail(writer.toString().trim());
+ }
}
// Assert pub is not run
@@ -84,7 +104,8 @@
MockContainer project = newEmptyProject();
target.build(new BuildEvent(project, null, MONITOR), MONITOR);
- target.assertCalls();
+ target.assertRunPub(null);
+ target.assertProcessLockFile(null);
}
// Assert pub is run on project containing pubspec.yaml
@@ -94,9 +115,21 @@
project.addFile(PUBSPEC_FILE_NAME);
target.build(new BuildEvent(project, null, MONITOR), MONITOR);
- target.assertCalls(project);
+ target.assertRunPub(project);
+ target.assertProcessLockFile(null);
}
+ // Assert lock file is processed when changed
+ public void test_build_full_pub_lockFile() throws Exception {
+ Target target = new Target();
+ MockContainer project = newEmptyProject();
+ MockFile file = new MockFile(project, PUBSPEC_LOCK_FILE_NAME);
+ project.add(file);
+ target.build(new BuildEvent(project, null, MONITOR), MONITOR);
+ target.assertProcessLockFile(file);
+ target.assertRunPub(null);
+ }
+
// Assert pub is not run on pubspec.yaml in folder under "packages" directory hierarchy
// or in hidden ".svn" directory
public void test_build_full_pubInPackages() throws Exception {
@@ -104,7 +137,8 @@
MockContainer project = newPubProject1();
target.build(new BuildEvent(project, null, MONITOR), MONITOR);
- target.assertCalls(project);
+ target.assertRunPub(project);
+ target.assertProcessLockFile(null);
}
// Assert pub is run when pubspec.yaml is added
@@ -116,7 +150,8 @@
delta.add(PUBSPEC_FILE_NAME, ADDED);
target.build(new BuildEvent(project, delta, MONITOR), MONITOR);
- target.assertCalls(project);
+ target.assertRunPub(project);
+ target.assertProcessLockFile(null);
}
// Assert pub is run when pubspec.yaml has changed
@@ -128,7 +163,8 @@
delta.add(PUBSPEC_FILE_NAME);
target.build(new BuildEvent(project, delta, MONITOR), MONITOR);
- target.assertCalls(project);
+ target.assertRunPub(project);
+ target.assertProcessLockFile(null);
}
// Assert pub is not run on pubspec.yaml in file under "packages" directory hierarchy
@@ -142,7 +178,8 @@
delta.add(".svn").add(PUBSPEC_FILE_NAME);
target.build(new BuildEvent(project, delta, MONITOR), MONITOR);
- target.assertCalls();
+ target.assertRunPub(null);
+ target.assertProcessLockFile(null);
}
// Assert pub is not run on pubspec.yaml in file under "packages" directory hierarchy
@@ -156,7 +193,8 @@
delta.add(".svn").add(PUBSPEC_FILE_NAME);
target.build(new BuildEvent(project, delta, MONITOR), MONITOR);
- target.assertCalls();
+ target.assertRunPub(null);
+ target.assertProcessLockFile(null);
}
// Assert pub not is run when pubspec.yaml is removed
@@ -168,6 +206,20 @@
delta.add(PUBSPEC_FILE_NAME, REMOVED);
target.build(new BuildEvent(project, delta, MONITOR), MONITOR);
- target.assertCalls();
+ target.assertRunPub(null);
+ target.assertProcessLockFile(null);
}
+
+ // Assert lock file is processed when not in project root
+ public void test_build_pub_lockFile_notInProjectRoot() throws Exception {
+ Target target = new Target();
+ MockContainer project = newEmptyProject();
+ MockFolder myApp = project.addFolder("myapp");
+ MockFile file = new MockFile(myApp, PUBSPEC_LOCK_FILE_NAME);
+ myApp.add(file);
+ target.build(new BuildEvent(project, null, MONITOR), MONITOR);
+ target.assertProcessLockFile(file);
+ target.assertRunPub(null);
+ }
+
}

Powered by Google App Engine
This is Rietveld 408576698