Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 0516cd1

Browse files
author
gumme
committed
Added test for testing generated names for pasted element copies and that the new names is registered in the correct namescope.
1 parent fe0e8c0 commit 0516cd1

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/EditOperationTests.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,5 +151,58 @@ public void PasteWhenIAddChildSelectedAndCannotAdd()
151151
Assert.AreEqual(_name, grid.ContentProperty.CollectionElements[3].Name);
152152
Assert.AreEqual(grid.ContentProperty.CollectionElements[3], selection.PrimarySelection);
153153
}
154+
155+
[Test]
156+
public void PasteSameElementMultipleTimesCheckCopiesNames()
157+
{
158+
var grid = IntializePasteOperationsTest();
159+
var xamlContext = grid.Context as XamlDesignContext;
160+
Assert.IsNotNull(xamlContext);
161+
162+
var selection = grid.Services.Selection;
163+
var innerGrid = grid.ContentProperty.CollectionElements[0];
164+
165+
selection.SetSelectedComponents(new[] {innerGrid});
166+
xamlContext.XamlEditAction.Paste();
167+
Assert.AreEqual(innerGrid.ContentProperty.CollectionElements[1], selection.PrimarySelection);
168+
169+
selection.SetSelectedComponents(new[] {innerGrid});
170+
xamlContext.XamlEditAction.Paste();
171+
Assert.AreEqual(innerGrid.ContentProperty.CollectionElements[2], selection.PrimarySelection);
172+
173+
selection.SetSelectedComponents(new[] {innerGrid});
174+
xamlContext.XamlEditAction.Paste();
175+
Assert.AreEqual(innerGrid.ContentProperty.CollectionElements[3], selection.PrimarySelection);
176+
177+
selection.SetSelectedComponents(new[] {innerGrid});
178+
xamlContext.XamlEditAction.Paste();
179+
Assert.AreEqual(innerGrid.ContentProperty.CollectionElements[4], selection.PrimarySelection);
180+
181+
Assert.IsNullOrEmpty(innerGrid.ContentProperty.CollectionElements[0].Name);
182+
Assert.AreEqual(_name, innerGrid.ContentProperty.CollectionElements[1].Name);
183+
Assert.AreEqual(_name + "_Copy", innerGrid.ContentProperty.CollectionElements[2].Name);
184+
Assert.AreEqual(_name + "_Copy1", innerGrid.ContentProperty.CollectionElements[3].Name);
185+
Assert.AreEqual(_name + "_Copy2", innerGrid.ContentProperty.CollectionElements[4].Name);
186+
187+
xamlContext.XamlEditAction.Copy(new[] {innerGrid.ContentProperty.CollectionElements[3]});
188+
var cutXaml = Clipboard.GetText(TextDataFormat.Xaml);
189+
Assert.That(cutXaml, Is.StringContaining(":Name=\"" + _name + "_Copy1\""));
190+
191+
selection.SetSelectedComponents(new[] {innerGrid});
192+
xamlContext.XamlEditAction.Paste();
193+
Assert.AreEqual(innerGrid.ContentProperty.CollectionElements[5], selection.PrimarySelection);
194+
Assert.AreEqual(_name + "_Copy3", innerGrid.ContentProperty.CollectionElements[5].Name);
195+
196+
var gridDepObj = grid.Component as DependencyObject;
197+
Assert.IsNotNull(gridDepObj);
198+
var nameScope = NameScope.GetNameScope(gridDepObj);
199+
Assert.IsNotNull(nameScope);
200+
Assert.IsNotNull(nameScope.FindName(_name));
201+
Assert.IsNotNull(nameScope.FindName(_name + "_Copy"));
202+
Assert.IsNotNull(nameScope.FindName(_name + "_Copy1"));
203+
Assert.IsNotNull(nameScope.FindName(_name + "_Copy2"));
204+
Assert.IsNotNull(nameScope.FindName(_name + "_Copy3"));
205+
Assert.IsNull(nameScope.FindName(_name + "_Copy4"));
206+
}
154207
}
155208
}

0 commit comments

Comments
 (0)