Skip to content

Commit fa2cd11

Browse files
committed
Some tests for ASComplete.DisambiguateComa
1 parent 232009f commit fa2cd11

File tree

2 files changed

+81
-3
lines changed

2 files changed

+81
-3
lines changed

External/Plugins/ASCompletion/Completion/ASComplete.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3497,7 +3497,7 @@ static private ASExpr GetExpression(ScintillaControl Sci, int position, bool ign
34973497
/// Find out in what context is a coma-separated expression
34983498
/// </summary>
34993499
/// <returns></returns>
3500-
private static ComaExpression DisambiguateComa(ScintillaControl Sci, int position, int minPos)
3500+
internal static ComaExpression DisambiguateComa(ScintillaControl Sci, int position, int minPos)
35013501
{
35023502
ContextFeatures features = ASContext.Context.Features;
35033503
// find block start '(' or '{'

Tests/External/Plugins/ASCompletion.Tests/Completion/ASCompleteTests.cs

Lines changed: 80 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Text;
53
using AS3Context;
64
using ASCompletion.Context;
75
using ASCompletion.Model;
@@ -119,5 +117,85 @@ public void GetExpressionType_SimpleTest()
119117
Assert.True(result.Context != null && result.Context.LocalVars != null);
120118
Assert.AreEqual(4, result.Context.LocalVars.Count);
121119
}
120+
121+
[Test]
122+
public void DisambiguateComa_FunctionArgumentType()
123+
{
124+
var pluginMain = Substitute.For<PluginMain>();
125+
var pluginUiMock = new PluginUIMock(pluginMain);
126+
pluginMain.MenuItems.Returns(new List<System.Windows.Forms.ToolStripItem>());
127+
pluginMain.Settings.Returns(new GeneralSettings());
128+
pluginMain.Panel.Returns(pluginUiMock);
129+
ASContext.GlobalInit(pluginMain);
130+
ASContext.Context = new AS3Context.Context(new AS3Settings());
131+
132+
var sci = GetBaseScintillaControl();
133+
sci.Text = "function test(arg:";
134+
sci.ConfigurationLanguage = "as3";
135+
136+
var coma = ASComplete.DisambiguateComa(sci, 18, 0);
137+
138+
Assert.AreEqual(ComaExpression.FunctionDeclaration, coma);
139+
}
140+
141+
[Test]
142+
public void DisambiguateComa_FunctionArgument()
143+
{
144+
var pluginMain = Substitute.For<PluginMain>();
145+
var pluginUiMock = new PluginUIMock(pluginMain);
146+
pluginMain.MenuItems.Returns(new List<System.Windows.Forms.ToolStripItem>());
147+
pluginMain.Settings.Returns(new GeneralSettings());
148+
pluginMain.Panel.Returns(pluginUiMock);
149+
ASContext.GlobalInit(pluginMain);
150+
ASContext.Context = new AS3Context.Context(new AS3Settings());
151+
152+
var sci = GetBaseScintillaControl();
153+
sci.Text = "function test(arg:String, arg2";
154+
sci.ConfigurationLanguage = "as3";
155+
156+
var coma = ASComplete.DisambiguateComa(sci, 30, 0);
157+
158+
Assert.AreEqual(ComaExpression.FunctionDeclaration, coma);
159+
}
160+
161+
[Test]
162+
public void DisambiguateComa_ArrayValue()
163+
{
164+
var pluginMain = Substitute.For<PluginMain>();
165+
var pluginUiMock = new PluginUIMock(pluginMain);
166+
pluginMain.MenuItems.Returns(new List<System.Windows.Forms.ToolStripItem>());
167+
pluginMain.Settings.Returns(new GeneralSettings());
168+
pluginMain.Panel.Returns(pluginUiMock);
169+
ASContext.GlobalInit(pluginMain);
170+
ASContext.Context = new AS3Context.Context(new AS3Settings());
171+
172+
var sci = GetBaseScintillaControl();
173+
sci.Text = "var arr:Array = [1, 2";
174+
sci.ConfigurationLanguage = "as3";
175+
176+
var coma = ASComplete.DisambiguateComa(sci, 21, 0);
177+
178+
Assert.AreEqual(ComaExpression.ArrayValue, coma);
179+
}
180+
181+
[Test]
182+
public void DisambiguateComa_ObjectParameter()
183+
{
184+
var pluginMain = Substitute.For<PluginMain>();
185+
var pluginUiMock = new PluginUIMock(pluginMain);
186+
pluginMain.MenuItems.Returns(new List<System.Windows.Forms.ToolStripItem>());
187+
pluginMain.Settings.Returns(new GeneralSettings());
188+
pluginMain.Panel.Returns(pluginUiMock);
189+
ASContext.GlobalInit(pluginMain);
190+
ASContext.Context = new AS3Context.Context(new AS3Settings());
191+
192+
var sci = GetBaseScintillaControl();
193+
sci.Text = "var obj:Object = {test: 10";
194+
sci.ConfigurationLanguage = "as3";
195+
196+
var coma = ASComplete.DisambiguateComa(sci, 26, 0);
197+
198+
Assert.AreEqual(ComaExpression.AnonymousObjectParam, coma);
199+
}
122200
}
123201
}

0 commit comments

Comments
 (0)