|
1 | 1 | using System;
|
2 | 2 | using System.Collections.Generic;
|
3 |
| -using System.Linq; |
4 |
| -using System.Text; |
5 | 3 | using AS3Context;
|
6 | 4 | using ASCompletion.Context;
|
7 | 5 | using ASCompletion.Model;
|
@@ -119,5 +117,85 @@ public void GetExpressionType_SimpleTest()
|
119 | 117 | Assert.True(result.Context != null && result.Context.LocalVars != null);
|
120 | 118 | Assert.AreEqual(4, result.Context.LocalVars.Count);
|
121 | 119 | }
|
| 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 | + } |
122 | 200 | }
|
123 | 201 | }
|
0 commit comments