Skip to content

Commit dc26967

Browse files
committed
More ASComplete.DisambiguateComa tests.
1 parent fa2cd11 commit dc26967

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

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

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,44 @@ public void DisambiguateComa_FunctionArgument()
158158
Assert.AreEqual(ComaExpression.FunctionDeclaration, coma);
159159
}
160160

161+
[Test(Description = "This includes PR #963")]
162+
public void DisambiguateComa_GenericFunctionArgumentType()
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 = "function test<K:(ArrayAccess, {})>(arg:";
174+
sci.ConfigurationLanguage = "as3";
175+
176+
var coma = ASComplete.DisambiguateComa(sci, 39, 0);
177+
Assert.AreEqual(ComaExpression.FunctionDeclaration, coma);
178+
}
179+
180+
[Test(Description = "This includes PR #963")]
181+
public void DisambiguateComa_GenericFunctionArgument()
182+
{
183+
var pluginMain = Substitute.For<PluginMain>();
184+
var pluginUiMock = new PluginUIMock(pluginMain);
185+
pluginMain.MenuItems.Returns(new List<System.Windows.Forms.ToolStripItem>());
186+
pluginMain.Settings.Returns(new GeneralSettings());
187+
pluginMain.Panel.Returns(pluginUiMock);
188+
ASContext.GlobalInit(pluginMain);
189+
ASContext.Context = new AS3Context.Context(new AS3Settings());
190+
191+
var sci = GetBaseScintillaControl();
192+
sci.Text = "function test<K:(ArrayAccess, {})>(arg:String, arg2";
193+
sci.ConfigurationLanguage = "as3";
194+
195+
var coma = ASComplete.DisambiguateComa(sci, 51, 0);
196+
Assert.AreEqual(ComaExpression.FunctionDeclaration, coma);
197+
}
198+
161199
[Test]
162200
public void DisambiguateComa_ArrayValue()
163201
{
@@ -197,5 +235,63 @@ public void DisambiguateComa_ObjectParameter()
197235

198236
Assert.AreEqual(ComaExpression.AnonymousObjectParam, coma);
199237
}
238+
239+
[Test]
240+
public void DisambiguateComa_ObjectProperty()
241+
{
242+
var pluginMain = Substitute.For<PluginMain>();
243+
var pluginUiMock = new PluginUIMock(pluginMain);
244+
pluginMain.MenuItems.Returns(new List<System.Windows.Forms.ToolStripItem>());
245+
pluginMain.Settings.Returns(new GeneralSettings());
246+
pluginMain.Panel.Returns(pluginUiMock);
247+
ASContext.GlobalInit(pluginMain);
248+
ASContext.Context = new AS3Context.Context(new AS3Settings());
249+
250+
var sci = GetBaseScintillaControl();
251+
sci.Text = "var obj:Object = {test";
252+
sci.ConfigurationLanguage = "as3";
253+
254+
var coma = ASComplete.DisambiguateComa(sci, 22, 0);
255+
// Should this be AnonymousObject?
256+
Assert.AreEqual(ComaExpression.AnonymousObjectParam, coma);
257+
}
258+
259+
[Test]
260+
public void DisambiguateComa_VariableType()
261+
{
262+
var pluginMain = Substitute.For<PluginMain>();
263+
var pluginUiMock = new PluginUIMock(pluginMain);
264+
pluginMain.MenuItems.Returns(new List<System.Windows.Forms.ToolStripItem>());
265+
pluginMain.Settings.Returns(new GeneralSettings());
266+
pluginMain.Panel.Returns(pluginUiMock);
267+
ASContext.GlobalInit(pluginMain);
268+
ASContext.Context = new AS3Context.Context(new AS3Settings());
269+
270+
var sci = GetBaseScintillaControl();
271+
sci.Text = "var obj:Obj";
272+
sci.ConfigurationLanguage = "as3";
273+
274+
var coma = ASComplete.DisambiguateComa(sci, 11, 0);
275+
Assert.AreEqual(ComaExpression.VarDeclaration, coma);
276+
}
277+
278+
[Test]
279+
public void DisambiguateComa_FunctionCallSimple()
280+
{
281+
var pluginMain = Substitute.For<PluginMain>();
282+
var pluginUiMock = new PluginUIMock(pluginMain);
283+
pluginMain.MenuItems.Returns(new List<System.Windows.Forms.ToolStripItem>());
284+
pluginMain.Settings.Returns(new GeneralSettings());
285+
pluginMain.Panel.Returns(pluginUiMock);
286+
ASContext.GlobalInit(pluginMain);
287+
ASContext.Context = new AS3Context.Context(new AS3Settings());
288+
289+
var sci = GetBaseScintillaControl();
290+
sci.Text = "this.call(true";
291+
sci.ConfigurationLanguage = "as3";
292+
293+
var coma = ASComplete.DisambiguateComa(sci, 14, 0);
294+
Assert.AreEqual(ComaExpression.FunctionParameter, coma);
295+
}
200296
}
201297
}

0 commit comments

Comments
 (0)