Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@novell.com>2011-05-04 08:32:54 +0400
committerMike Krüger <mkrueger@novell.com>2011-05-04 08:32:54 +0400
commitece0647d57a871ec3c33bc56e36ccf0f23f88d94 (patch)
tree5e158676eb69395951210c1b1d6f197c0a1a9f05 /main/tests
parent74ad2dc66f0930bb1c37e2c6945d501e15ed6e3d (diff)
parente335bb9bbe22b36cbd5ecd39c8d423b9e32ea420 (diff)
Merge branch 'master' into mkrueger/newNRefactory
Conflicts: main/src/addins/CSharpBinding/CSharpBinding.csproj main/src/addins/CSharpBinding/Makefile.am main/src/addins/CSharpBinding/MonoDevelop.CSharp.Ast/DepthFirstAstVisitor.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Ast/IAstVisitor.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/CSharpFormatter.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Formatting/OnTheFlyFormatter.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/CSharpParser.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/anonymous.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/argument.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/assembly.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/assign.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/attribute.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/cfold.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/class.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/codegen.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/const.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/constant.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/context.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/convert.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/cs-parser.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/cs-parser.jay main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/cs-tokenizer.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/decl.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/delegate.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/doc.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/driver.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/dynamic.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/ecore.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/enum.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/eval.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/expression.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/field.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/generic.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/import.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/iterators.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/linq.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/literal.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/location.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/membercache.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/method.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/namespace.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/nullable.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/parameter.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/pending.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/property.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/reflection.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/report.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/roottypes.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/statement.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/typemanager.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/typespec.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Parser/mcs/visit.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/CSharpReferenceFinder.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Refactoring/FindMemberAstVisitor.cs
Diffstat (limited to 'main/tests')
-rw-r--r--main/tests/UnitTests/Makefile.am1
-rw-r--r--main/tests/UnitTests/Mono.TextEditor.Tests/HeightTreeTests.cs176
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs33
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs4
-rw-r--r--main/tests/UnitTests/MonoDevelop.Projects.Gui/CompletionListWindowTests.cs7
-rw-r--r--main/tests/UnitTests/UnitTests.csproj1
6 files changed, 220 insertions, 2 deletions
diff --git a/main/tests/UnitTests/Makefile.am b/main/tests/UnitTests/Makefile.am
index 038507d223..8182e9fd7c 100644
--- a/main/tests/UnitTests/Makefile.am
+++ b/main/tests/UnitTests/Makefile.am
@@ -48,6 +48,7 @@ FILES = \
Mono.TextEditor.Tests/DocumentTests.cs \
Mono.TextEditor.Tests/EditActionsTest.cs \
Mono.TextEditor.Tests/FoldingTests.cs \
+ Mono.TextEditor.Tests/HeightTreeTests.cs \
Mono.TextEditor.Tests/InsertionModeTests.cs \
Mono.TextEditor.Tests/LineSplitterTests.cs \
Mono.TextEditor.Tests/RedBlackTreeTests.cs \
diff --git a/main/tests/UnitTests/Mono.TextEditor.Tests/HeightTreeTests.cs b/main/tests/UnitTests/Mono.TextEditor.Tests/HeightTreeTests.cs
new file mode 100644
index 0000000000..454fd9a938
--- /dev/null
+++ b/main/tests/UnitTests/Mono.TextEditor.Tests/HeightTreeTests.cs
@@ -0,0 +1,176 @@
+//
+// HeightTreeTests.cs
+//
+// Author:
+// Mike Krüger <mkrueger@novell.com>
+//
+// Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using NUnit.Framework;
+using UnitTests;
+
+namespace Mono.TextEditor.Tests
+{
+ [TestFixture()]
+ public class HeightTreeTests : TestBase
+ {
+ [Test()]
+ public void TestSimpleLineNumberToY ()
+ {
+ TextEditor editor = new TextEditor ();
+ editor.Text = "1\n2\n3\n4\n5\n6\n7";
+ HeightTree heightTree = new HeightTree (editor);
+ heightTree.Rebuild ();
+ for (int i = 1; i <= editor.LineCount; i++) {
+ Assert.AreEqual ((i - 1) * editor.LineHeight, heightTree.LineNumberToY (i));
+ }
+ }
+
+ [Test()]
+ public void TestSimpleYToLineNumber ()
+ {
+ TextEditor editor = new TextEditor ();
+ editor.Text = "1\n2\n3\n4\n5\n6\n7";
+ HeightTree heightTree = new HeightTree (editor);
+ heightTree.Rebuild ();
+ for (int i = 1; i <= editor.LineCount; i++) {
+ Assert.AreEqual (i, heightTree.YToLineNumber ((i - 1) * editor.LineHeight));
+ }
+ }
+
+ [Test()]
+ public void TestSetLineHeight ()
+ {
+ TextEditor editor = new TextEditor ();
+ editor.Text = "1\n2\n3\n4\n5\n6\n7";
+ HeightTree heightTree = new HeightTree (editor);
+ heightTree.Rebuild ();
+ for (int i = 1; i <= editor.LineCount; i += 2) {
+ heightTree.SetLineHeight (i, editor.LineHeight * 2);
+ }
+
+ double y = 0;
+ for (int i = 1; i <= editor.LineCount; i++) {
+ Assert.AreEqual (y, heightTree.LineNumberToY (i));
+ y += i % 2 == 0 ? editor.LineHeight : editor.LineHeight * 2;
+ }
+
+ y = 0;
+ for (int i = 1; i <= editor.LineCount; i++) {
+ Assert.AreEqual (i, heightTree.YToLineNumber (y));
+ y += i % 2 == 0 ? editor.LineHeight : editor.LineHeight * 2;
+ }
+
+ }
+
+ [Test()]
+ public void TestFoldLineNumberToYCase1 ()
+ {
+ TextEditor editor = new TextEditor ();
+ editor.Text = "1\n2\n3\n4\n5\n6\n7";
+ HeightTree heightTree = new HeightTree (editor);
+ heightTree.Rebuild ();
+
+ heightTree.Fold (2, 2);
+
+ for (int i = 1; i <= editor.LineCount; i++) {
+ int j = i;
+ if (j >= 2) {
+ if (j <= 4) {
+ j = 2;
+ } else {
+ j -= 2;
+ }
+ }
+ Console.WriteLine ("i:" + i + "/" + j);
+ Assert.AreEqual ((j - 1) * editor.LineHeight, heightTree.LineNumberToY (i));
+ }
+ }
+
+ [Test()]
+ public void TestFoldYToLineNumber ()
+ {
+ TextEditor editor = new TextEditor ();
+ editor.Text = "1\n2\n3\n4\n5\n6\n7";
+ HeightTree heightTree = new HeightTree (editor);
+ heightTree.Rebuild ();
+
+ heightTree.Fold (2, 2);
+
+ for (int i = 1; i <= editor.LineCount; i++) {
+ int j = i;
+ if (j >= 2) {
+ if (j <= 4) {
+ j = 2;
+ } else {
+ j -= 2;
+ }
+ }
+
+ int k;
+ if (i >= 2 && i <= 4) {
+ k = 2;
+ } else {
+ k = i;
+ }
+
+ Assert.AreEqual (k, heightTree.YToLineNumber ((j - 1) * editor.LineHeight));
+ }
+ }
+
+ [Test()]
+ public void TestFoldLineNumberToY ()
+ {
+ TextEditor editor = new TextEditor ();
+ editor.Text = "1\n2\n3\n4\n5\n6\n7\n8";
+ HeightTree heightTree = new HeightTree (editor);
+ heightTree.Rebuild ();
+
+ heightTree.Fold (1, 3);
+ for (int i = 1; i <= editor.LineCount; i++) {
+ Console.WriteLine (i + ":"+ heightTree.LineNumberToY (i));
+ }
+ Assert.AreEqual (0, heightTree.LineNumberToY (2));
+ Assert.AreEqual (0, heightTree.LineNumberToY (4));
+ Assert.AreEqual (1 * editor.LineHeight, heightTree.LineNumberToY (5));
+ Assert.AreEqual (2 * editor.LineHeight, heightTree.LineNumberToY (6));
+ Assert.AreEqual (3 * editor.LineHeight, heightTree.LineNumberToY (7));
+ }
+
+ [Test()]
+ public void TestUnfold ()
+ {
+ TextEditor editor = new TextEditor ();
+ editor.Text = "1\n2\n3\n4\n5\n6\n7";
+ HeightTree heightTree = new HeightTree (editor);
+ heightTree.Rebuild ();
+ heightTree.Fold (2, 2);
+ heightTree.Unfold (2, 2);
+ for (int i = 1; i <= editor.LineCount; i++) {
+ Assert.AreEqual ((i - 1) * editor.LineHeight, heightTree.LineNumberToY (i));
+ Assert.AreEqual (i, heightTree.YToLineNumber ((i - 1) * editor.LineHeight));
+ }
+ }
+
+
+ }
+}
+
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs
index ae9971525e..067bd2438f 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/CodeCompletionBugTests.cs
@@ -3415,5 +3415,38 @@ namespace N1
Assert.IsNotNull (provider, "provider not found.");
Assert.IsNotNull (provider.Find ("Foo"), "method 'Foo' not found.");
}
+
+ /// <summary>
+ /// Bug 690606 - Incomplete subclasses listing in code completion
+
+
+ /// <summary>
+ /// Bug 690606 - Incomplete subclasses listing in code completion
+ /// </summary>
+ [Test()]
+ public void TestBug690606 ()
+ {
+ CompletionDataList provider = CreateCtrlSpaceProvider (
+@"
+public abstract class Base {}
+public abstract class MyBase<T> : Base {}
+public class A : MyBase<string> {}
+public class B : MyBase<int> {}
+public class C : MyBase<bool> {}
+
+public class Test
+{
+ public static void Main (string[] args)
+ {
+ $Base x = new $
+ }
+}
+
+");
+ Assert.IsNotNull (provider, "provider not found.");
+ Assert.IsNotNull (provider.Find ("A"), "class 'A' not found.");
+ Assert.IsNotNull (provider.Find ("B"), "class 'B' not found.");
+ Assert.IsNotNull (provider.Find ("C"), "class 'C' not found.");
+ }
}
}
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs
index be7de2a81a..98c1468648 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/FindMemberVisitorTests.cs
@@ -118,8 +118,8 @@ namespace MonoDevelop.CSharpBinding.Tests
((IType)smv.FoundMember).TypeParameters.Count,
true);
}
- FindMemberAstVisitor astVisitor = new FindMemberAstVisitor (testViewContent.GetTextEditorData ().Document, resolver, smv.FoundMember);
- astVisitor.RunVisitor ();
+ FindMemberAstVisitor astVisitor = new FindMemberAstVisitor (testViewContent.GetTextEditorData ().Document, smv.FoundMember);
+ astVisitor.RunVisitor (resolver);
int i = 0, j = 0;
StringBuilder errorText = new StringBuilder ();
diff --git a/main/tests/UnitTests/MonoDevelop.Projects.Gui/CompletionListWindowTests.cs b/main/tests/UnitTests/MonoDevelop.Projects.Gui/CompletionListWindowTests.cs
index 5fae8ff8d2..19b45dc4c6 100644
--- a/main/tests/UnitTests/MonoDevelop.Projects.Gui/CompletionListWindowTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.Projects.Gui/CompletionListWindowTests.cs
@@ -633,6 +633,13 @@ namespace MonoDevelop.Projects.Gui
Assert.AreEqual ("WriteRaw", output);
}
+ [Test]
+ public void TestDigitSelection()
+ {
+ string output = RunSimulation ("", "v1\t", true, true, false, "var", "var1");
+ Assert.AreEqual ("var1", output);
+ }
+
[TestFixtureSetUp]
public void SetUp()
{
diff --git a/main/tests/UnitTests/UnitTests.csproj b/main/tests/UnitTests/UnitTests.csproj
index 4a16c961d1..388681d513 100644
--- a/main/tests/UnitTests/UnitTests.csproj
+++ b/main/tests/UnitTests/UnitTests.csproj
@@ -234,6 +234,7 @@
<Compile Include="MonoDevelop.VersionControl.Git\GitUtilsTests.cs" />
<Compile Include="Mono.TextEditor.Tests\SegmentTreeTests.cs" />
<Compile Include="Mono.TextEditor.Tests\RedBlackTreeTests.cs" />
+ <Compile Include="Mono.TextEditor.Tests\HeightTreeTests.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="..\..\md.targets" />