diff options
author | Mike Krüger <mkrueger@novell.com> | 2011-05-04 08:32:54 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@novell.com> | 2011-05-04 08:32:54 +0400 |
commit | ece0647d57a871ec3c33bc56e36ccf0f23f88d94 (patch) | |
tree | 5e158676eb69395951210c1b1d6f197c0a1a9f05 /main/tests | |
parent | 74ad2dc66f0930bb1c37e2c6945d501e15ed6e3d (diff) | |
parent | e335bb9bbe22b36cbd5ecd39c8d423b9e32ea420 (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')
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" /> |