diff options
Diffstat (limited to 'qt/org.eclipse.cdt.qt.ui.tests/src/org/eclipse/cdt/qt/pro/parser/tests/QtProjectFileModifierTest.java')
-rw-r--r-- | qt/org.eclipse.cdt.qt.ui.tests/src/org/eclipse/cdt/qt/pro/parser/tests/QtProjectFileModifierTest.java | 680 |
1 files changed, 340 insertions, 340 deletions
diff --git a/qt/org.eclipse.cdt.qt.ui.tests/src/org/eclipse/cdt/qt/pro/parser/tests/QtProjectFileModifierTest.java b/qt/org.eclipse.cdt.qt.ui.tests/src/org/eclipse/cdt/qt/pro/parser/tests/QtProjectFileModifierTest.java index 4880a08eed9..eac78a86fe4 100644 --- a/qt/org.eclipse.cdt.qt.ui.tests/src/org/eclipse/cdt/qt/pro/parser/tests/QtProjectFileModifierTest.java +++ b/qt/org.eclipse.cdt.qt.ui.tests/src/org/eclipse/cdt/qt/pro/parser/tests/QtProjectFileModifierTest.java @@ -1,340 +1,340 @@ -/*******************************************************************************
- * Copyright (c) 2015 QNX Software Systems and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * QNX Software Systems - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.cdt.qt.pro.parser.tests;
-
-import org.eclipse.cdt.internal.qt.ui.pro.parser.QtProjectFileModifier;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.junit.Test;
-
-import junit.framework.TestCase;
-
-public class QtProjectFileModifierTest extends TestCase {
-
- @Test
- public void test_ReplaceValue_SingleValue() {
- IDocument document = new Document("SOURCES += main.cpp"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
-
- assertTrue(modifier.replaceVariableValue("SOURCES", "main.cpp", "main2.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals("SOURCES += main2.cpp", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_ReplaceValue_HasCommentOnMainLine() {
- IDocument document = new Document("SOURCES += main.cpp # This is a comment"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
-
- assertTrue(modifier.replaceVariableValue("SOURCES", "main.cpp", "main2.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals("SOURCES += main2.cpp # This is a comment", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_ReplaceValue_HasCommentOnSubsequentLine() {
- IDocument document = new Document(
- "SOURCES += main.cpp \\ # This is a comment\n" //$NON-NLS-1$
- + " main2.cpp # This is a comment"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
-
- assertTrue(modifier.replaceVariableValue("SOURCES", "main2.cpp", "main3.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals(
- "SOURCES += main.cpp \\ # This is a comment\n" //$NON-NLS-1$
- + " main3.cpp # This is a comment", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_ReplaceValue_MatchWholeLineFalse() {
- IDocument document = new Document("CONFIG = qt debug"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
-
- assertTrue(modifier.replaceVariableValue("CONFIG", "debug", "console", false)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals(
- "CONFIG = qt console", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_ReplaceValue_DoesNotExist() {
- IDocument document = new Document("CONFIG = qt debug"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
-
- assertFalse(modifier.replaceVariableValue("CONFIG", "console", "debug", false)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals(
- "CONFIG = qt debug", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_ReplaceMultilineValue_MatchWholeLineFalse() {
- IDocument document = new Document(
- "CONFIG = qt \\\n" //$NON-NLS-1$
- + " debug"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
-
- assertTrue(modifier.replaceVariableValue("CONFIG", "debug", "console", false)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals(
- "CONFIG = qt \\\n" //$NON-NLS-1$
- + " console", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_ReplaceMultilineValue() {
- IDocument document = new Document(
- "SOURCES += main.cpp \\\n" //$NON-NLS-1$
- + " main2.cpp"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
-
- assertTrue(modifier.replaceVariableValue("SOURCES", "main2.cpp", "main3.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals(
- "SOURCES += main.cpp \\\n" //$NON-NLS-1$
- + " main3.cpp", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_ReplaceMultilineValue_HasComment() {
- IDocument document = new Document(
- "SOURCES += main.cpp \\\n" //$NON-NLS-1$
- + " main2.cpp # This is a comment"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
-
- assertTrue(modifier.replaceVariableValue("SOURCES", "main2.cpp", "main3.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals(
- "SOURCES += main.cpp \\\n" //$NON-NLS-1$
- + " main3.cpp # This is a comment", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue() {
- IDocument document = new Document("SOURCES += main.cpp"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main.cpp \\\n" //$NON-NLS-1$
- + " main2.cpp", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue_NoIndentation() {
- IDocument document = new Document(
- "SOURCES += main.cpp \\\n" //$NON-NLS-1$
- + "noindent.cpp"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main.cpp \\\n" //$NON-NLS-1$
- + "noindent.cpp \\\n" //$NON-NLS-1$
- + "main2.cpp", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue_AlreadyExists() {
- IDocument document = new Document("SOURCES += main.cpp"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals("SOURCES += main.cpp", document.get()); //$NON-NLS-1$
- }
-
- @Test
- public void test_AddValue_HasCommentOnMainLine() {
- IDocument document = new Document("SOURCES += main.cpp # This is a comment"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main.cpp \\ # This is a comment\n" //$NON-NLS-1$
- + " main2.cpp", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue_HasCommentOnSubsequentLine() {
- IDocument document = new Document(
- "SOURCES += main.cpp \\ # This is a comment \n" //$NON-NLS-1$
- + " main2.cpp # this is a comment\n\n"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main3.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main.cpp \\ # This is a comment \n" //$NON-NLS-1$
- + " main2.cpp \\ # this is a comment\n" //$NON-NLS-1$
- + " main3.cpp\n\n", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue_CommentIndentation() {
- IDocument document = new Document(
- "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$
- + " main2.cpp \\ # Test comment2\n" //$NON-NLS-1$
- + " main3.cpp # Test comment3"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main4.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$
- + " main2.cpp \\ # Test comment2\n" //$NON-NLS-1$
- + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$
- + " main4.cpp", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue_MultipleVariables() {
- IDocument document = new Document(
- "SOURCES += main.cpp\n" //$NON-NLS-1$
- + "\n" //$NON-NLS-1$
- + "QT = app"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main.cpp \\\n" + //$NON-NLS-1$
- " main2.cpp\n" + //$NON-NLS-1$
- "\n" + //$NON-NLS-1$
- "QT = app", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue_EmptyDocument() {
- IDocument document = new Document("\t \n\n\t\n\n\n\n"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main.cpp\n", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue_VariableDoesNotExist() {
- IDocument document = new Document("CONFIG += qt debug"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "CONFIG += qt debug\n" //$NON-NLS-1$
- + "\n" //$NON-NLS-1$
- + "SOURCES += main.cpp\n", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue_VariableDoesNotExist2() {
- IDocument document = new Document("CONFIG += qt debug\n"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "CONFIG += qt debug\n" //$NON-NLS-1$
- + "\n" //$NON-NLS-1$
- + "SOURCES += main.cpp\n", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_AddValue_VariableDoesNotExist3() {
- IDocument document = new Document("CONFIG += qt debug\n\n"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "CONFIG += qt debug\n" //$NON-NLS-1$
- + "\n" //$NON-NLS-1$
- + "\n" //$NON-NLS-1$
- + "SOURCES += main.cpp\n", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_RemoveThenAddValue() {
- IDocument document = new Document(
- "SOURCES += main.cpp \\\n" //$NON-NLS-1$
- + " main2.cpp \\\n" //$NON-NLS-1$
- + " main3.cpp\n"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.removeVariableValue("SOURCES", "main3.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
- modifier.addVariableValue("SOURCES", "main4.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main.cpp \\\n" //$NON-NLS-1$
- + " main2.cpp \\\n" //$NON-NLS-1$
- + " main4.cpp\n", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_RemoveValue_FirstLine() {
- IDocument document = new Document(
- "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$
- + " main2.cpp \\ # Test comment2\n" //$NON-NLS-1$
- + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$
- + " main4.cpp # Test comment4"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.removeVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main2.cpp \\ # Test comment2\n" //$NON-NLS-1$
- + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$
- + " main4.cpp # Test comment4", //$NON-NLS-1$
- document.get());
- }
-
- @Test
- public void test_RemoveValue_MiddleLine() {
- IDocument document = new Document(
- "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$
- + " main2.cpp \\ # Test comment2\n" //$NON-NLS-1$
- + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$
- + " main4.cpp # Test comment4"); //$NON-NLS-1$
-
- QtProjectFileModifier modifier = new QtProjectFileModifier(document);
- modifier.removeVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$
-
- assertEquals(
- "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$
- + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$
- + " main4.cpp # Test comment4", //$NON-NLS-1$
- document.get());
- }
-}
+/******************************************************************************* + * Copyright (c) 2015 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.qt.pro.parser.tests; + +import org.eclipse.cdt.internal.qt.ui.pro.parser.QtProjectFileModifier; +import org.eclipse.jface.text.Document; +import org.eclipse.jface.text.IDocument; +import org.junit.Test; + +import junit.framework.TestCase; + +public class QtProjectFileModifierTest extends TestCase { + + @Test + public void test_ReplaceValue_SingleValue() { + IDocument document = new Document("SOURCES += main.cpp"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + + assertTrue(modifier.replaceVariableValue("SOURCES", "main.cpp", "main2.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals("SOURCES += main2.cpp", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_ReplaceValue_HasCommentOnMainLine() { + IDocument document = new Document("SOURCES += main.cpp # This is a comment"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + + assertTrue(modifier.replaceVariableValue("SOURCES", "main.cpp", "main2.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals("SOURCES += main2.cpp # This is a comment", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_ReplaceValue_HasCommentOnSubsequentLine() { + IDocument document = new Document( + "SOURCES += main.cpp \\ # This is a comment\n" //$NON-NLS-1$ + + " main2.cpp # This is a comment"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + + assertTrue(modifier.replaceVariableValue("SOURCES", "main2.cpp", "main3.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals( + "SOURCES += main.cpp \\ # This is a comment\n" //$NON-NLS-1$ + + " main3.cpp # This is a comment", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_ReplaceValue_MatchWholeLineFalse() { + IDocument document = new Document("CONFIG = qt debug"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + + assertTrue(modifier.replaceVariableValue("CONFIG", "debug", "console", false)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals( + "CONFIG = qt console", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_ReplaceValue_DoesNotExist() { + IDocument document = new Document("CONFIG = qt debug"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + + assertFalse(modifier.replaceVariableValue("CONFIG", "console", "debug", false)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals( + "CONFIG = qt debug", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_ReplaceMultilineValue_MatchWholeLineFalse() { + IDocument document = new Document( + "CONFIG = qt \\\n" //$NON-NLS-1$ + + " debug"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + + assertTrue(modifier.replaceVariableValue("CONFIG", "debug", "console", false)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals( + "CONFIG = qt \\\n" //$NON-NLS-1$ + + " console", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_ReplaceMultilineValue() { + IDocument document = new Document( + "SOURCES += main.cpp \\\n" //$NON-NLS-1$ + + " main2.cpp"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + + assertTrue(modifier.replaceVariableValue("SOURCES", "main2.cpp", "main3.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals( + "SOURCES += main.cpp \\\n" //$NON-NLS-1$ + + " main3.cpp", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_ReplaceMultilineValue_HasComment() { + IDocument document = new Document( + "SOURCES += main.cpp \\\n" //$NON-NLS-1$ + + " main2.cpp # This is a comment"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + + assertTrue(modifier.replaceVariableValue("SOURCES", "main2.cpp", "main3.cpp")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + assertEquals( + "SOURCES += main.cpp \\\n" //$NON-NLS-1$ + + " main3.cpp # This is a comment", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue() { + IDocument document = new Document("SOURCES += main.cpp"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main.cpp \\\n" //$NON-NLS-1$ + + " main2.cpp", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue_NoIndentation() { + IDocument document = new Document( + "SOURCES += main.cpp \\\n" //$NON-NLS-1$ + + "noindent.cpp"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main.cpp \\\n" //$NON-NLS-1$ + + "noindent.cpp \\\n" //$NON-NLS-1$ + + "main2.cpp", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue_AlreadyExists() { + IDocument document = new Document("SOURCES += main.cpp"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals("SOURCES += main.cpp", document.get()); //$NON-NLS-1$ + } + + @Test + public void test_AddValue_HasCommentOnMainLine() { + IDocument document = new Document("SOURCES += main.cpp # This is a comment"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main.cpp \\ # This is a comment\n" //$NON-NLS-1$ + + " main2.cpp", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue_HasCommentOnSubsequentLine() { + IDocument document = new Document( + "SOURCES += main.cpp \\ # This is a comment \n" //$NON-NLS-1$ + + " main2.cpp # this is a comment\n\n"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main3.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main.cpp \\ # This is a comment \n" //$NON-NLS-1$ + + " main2.cpp \\ # this is a comment\n" //$NON-NLS-1$ + + " main3.cpp\n\n", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue_CommentIndentation() { + IDocument document = new Document( + "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$ + + " main2.cpp \\ # Test comment2\n" //$NON-NLS-1$ + + " main3.cpp # Test comment3"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main4.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$ + + " main2.cpp \\ # Test comment2\n" //$NON-NLS-1$ + + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$ + + " main4.cpp", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue_MultipleVariables() { + IDocument document = new Document( + "SOURCES += main.cpp\n" //$NON-NLS-1$ + + "\n" //$NON-NLS-1$ + + "QT = app"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main.cpp \\\n" + //$NON-NLS-1$ + " main2.cpp\n" + //$NON-NLS-1$ + "\n" + //$NON-NLS-1$ + "QT = app", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue_EmptyDocument() { + IDocument document = new Document("\t \n\n\t\n\n\n\n"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main.cpp\n", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue_VariableDoesNotExist() { + IDocument document = new Document("CONFIG += qt debug"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "CONFIG += qt debug\n" //$NON-NLS-1$ + + "\n" //$NON-NLS-1$ + + "SOURCES += main.cpp\n", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue_VariableDoesNotExist2() { + IDocument document = new Document("CONFIG += qt debug\n"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "CONFIG += qt debug\n" //$NON-NLS-1$ + + "\n" //$NON-NLS-1$ + + "SOURCES += main.cpp\n", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_AddValue_VariableDoesNotExist3() { + IDocument document = new Document("CONFIG += qt debug\n\n"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.addVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "CONFIG += qt debug\n" //$NON-NLS-1$ + + "\n" //$NON-NLS-1$ + + "\n" //$NON-NLS-1$ + + "SOURCES += main.cpp\n", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_RemoveThenAddValue() { + IDocument document = new Document( + "SOURCES += main.cpp \\\n" //$NON-NLS-1$ + + " main2.cpp \\\n" //$NON-NLS-1$ + + " main3.cpp\n"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.removeVariableValue("SOURCES", "main3.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + modifier.addVariableValue("SOURCES", "main4.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main.cpp \\\n" //$NON-NLS-1$ + + " main2.cpp \\\n" //$NON-NLS-1$ + + " main4.cpp\n", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_RemoveValue_FirstLine() { + IDocument document = new Document( + "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$ + + " main2.cpp \\ # Test comment2\n" //$NON-NLS-1$ + + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$ + + " main4.cpp # Test comment4"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.removeVariableValue("SOURCES", "main.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main2.cpp \\ # Test comment2\n" //$NON-NLS-1$ + + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$ + + " main4.cpp # Test comment4", //$NON-NLS-1$ + document.get()); + } + + @Test + public void test_RemoveValue_MiddleLine() { + IDocument document = new Document( + "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$ + + " main2.cpp \\ # Test comment2\n" //$NON-NLS-1$ + + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$ + + " main4.cpp # Test comment4"); //$NON-NLS-1$ + + QtProjectFileModifier modifier = new QtProjectFileModifier(document); + modifier.removeVariableValue("SOURCES", "main2.cpp"); //$NON-NLS-1$ //$NON-NLS-2$ + + assertEquals( + "SOURCES += main.cpp \\ # Test comment\n" //$NON-NLS-1$ + + " main3.cpp \\ # Test comment3\n" //$NON-NLS-1$ + + " main4.cpp # Test comment4", //$NON-NLS-1$ + document.get()); + } +} |