/* * Copyright (c) 2012, the Dart project authors. * * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.eclipse.org/legal/epl-v10.html * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.dart.tools.ui.internal.update; import com.google.common.collect.Lists; import com.google.dart.tools.update.core.internal.jobs.INIRewriter; import junit.framework.TestCase; import static org.junit.Assert.assertArrayEquals; import java.util.List; /** * Smoke tests for verifying INI rewrite logic. */ public class INIRewriteTest extends TestCase { public void testInsert() throws Exception { List<String> list = Lists.newArrayList( "-consoleLog", "-data", "workspace", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"); INIRewriter.insertBefore(list, "-vmargs", "-vm"); INIRewriter.insertAfter(list, "-vm", "/usr/local/buildtools/java/jdk-64/bin/java"); assertArrayEquals(new String[] { "-consoleLog", "-data", "workspace", "-vm", "/usr/local/buildtools/java/jdk-64/bin/java", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}, list.toArray()); } public void testMergeAgentFlag() throws Exception { String[] orig = { "-consoleLog", "-data", "workspace", "-vmargs", "-Dosgi.requiredJavaVersion=1.6", "-XX:-GoogleAgent"}; String[] latest = { "-consoleLog", "-data", "workspace", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] merged = INIRewriter.merge(orig, latest); assertArrayEquals(orig, merged); } public void testMergeIdentity() throws Exception { String[] orig = { "-data", "@noDefault", "-consoleLog", "-vmargs", "-Dosgi.requiredJavaVersion=1.6", "-XX:MaxPermSize=256m", "-Xms40m", "-Xmx1024m", "-XstartOnFirstThread", "-Dorg.eclipse.swt.internal.carbon.smallFonts", "-Declipse.vm=/System/Library/Frameworks/JavaVM.framework", "-Xdock:icon=../Resources/dart.icns", "-Dcom.dart.tools.update.core.url=http://gsdview.appspot.com/dart-editor-archive-continuous/"}; String[] merged = INIRewriter.merge(orig, orig); assertArrayEquals(orig, merged); } public void testMergePackageOverride() throws Exception { String[] orig = { "-consoleLog", "-data", "workspace", "--package-override-directory", "/usr/local/myapp", "-vm", "/usr/local/buildtools/java/jdk-64/bin/java", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] latest = { "-consoleLog", "-data", "workspace", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] merged = INIRewriter.merge(orig, latest); assertArrayEquals(orig, merged); String[] orig2 = { "-consoleLog", "-data", "workspace", "--package-override-directory", "/usr/local/myapp", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] merged2 = INIRewriter.merge(orig2, latest); assertArrayEquals(orig2, merged2); } public void testMergePackageRoot() throws Exception { String[] orig = { "-consoleLog", "-data", "workspace", "--package-root", "/usr/local/myapp", "-vm", "/usr/local/buildtools/java/jdk-64/bin/java", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] latest = { "-consoleLog", "-data", "workspace", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] merged = INIRewriter.merge(orig, latest); assertArrayEquals(orig, merged); String[] orig2 = { "-consoleLog", "-data", "workspace", "--package-root", "/usr/local/myapp", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] merged2 = INIRewriter.merge(orig2, latest); assertArrayEquals(orig2, merged2); String[] orig3 = { "-consoleLog", "-data", "workspace", "--package-root", "/usr/local/myapp", "/usr/local/packages", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] merged3 = INIRewriter.merge(orig3, latest); assertArrayEquals(orig3, merged3); String[] orig4 = { "-consoleLog", "-data", "workspace", "--package-root", "/usr/local/myapp", "/usr/local/packages", "-vm", "/usr/local/buildtools/java/jdk-64/bin/java", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] merged4 = INIRewriter.merge(orig4, latest); assertArrayEquals(orig4, merged4); } public void testMergeVM() throws Exception { String[] orig = { "-consoleLog", "-data", "workspace", "-vm", "/usr/local/buildtools/java/jdk-64/bin/java", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] latest = { "-consoleLog", "-data", "workspace", "-vmargs", "-Dosgi.requiredJavaVersion=1.6"}; String[] merged = INIRewriter.merge(orig, latest); assertArrayEquals(orig, merged); } public void testOverwriteUserVMargs() throws Exception { String[] orig = { "-data", "@noDefault", "-consoleLog", "-vmargs", "-Dosgi.requiredJavaVersion=1.6", "-XX:MaxPermSize=256m", "-Xms40m", "-Xmx1024m", "-XstartOnFirstThread", "-Dorg.eclipse.swt.internal.carbon.smallFonts", "-Declipse.vm=/System/Library/Frameworks/JavaVM.framework", "-Xdock:icon=../Resources/dart.icns", "-Dcom.dart.tools.update.core.url=http://gsdview.appspot.com/dart-editor-archive-continuous/"}; String[] updated = { "-data", "@noDefault", "-consoleLog", "-vmargs", "-Dosgi.requiredJavaVersion=1.6", "-XX:MaxPermSize=512m", "-Xms64m", "-Xmx1024m", "-XstartOnFirstThread", "-Dorg.eclipse.swt.internal.carbon.smallFonts", "-Declipse.vm=/System/Library/Frameworks/JavaVM.framework", "-Xdock:icon=../Resources/dart.icns"}; String[] merged = INIRewriter.merge(orig, updated); assertArrayEquals(updated, merged); } }