From 2ba0535dfa92fedbdc68b9db8c72cfd6d0986ed0 Mon Sep 17 00:00:00 2001 From: Zachary Danz Date: Wed, 18 Sep 2019 12:33:37 -0700 Subject: [PATCH] test for collection editor --- ....Windows.Forms.Design.Editors.Tests.csproj | 1 + .../Design/CollectionEditorTests.cs | 11 ++++++ .../System/Drawing/Design/FontEditorTests.cs | 11 +++++- .../src/Properties/InternalsVisibleTo.cs | 1 + .../src/System/Drawing/Design/UITypeEditor.cs | 36 +++++++++++-------- 5 files changed, 45 insertions(+), 15 deletions(-) diff --git a/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System.Windows.Forms.Design.Editors.Tests.csproj b/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System.Windows.Forms.Design.Editors.Tests.csproj index a1c2958a479..e3298a076bc 100644 --- a/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System.Windows.Forms.Design.Editors.Tests.csproj +++ b/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System.Windows.Forms.Design.Editors.Tests.csproj @@ -13,6 +13,7 @@ + diff --git a/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System/ComponentModel/Design/CollectionEditorTests.cs b/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System/ComponentModel/Design/CollectionEditorTests.cs index 501f7f3eb50..e309e0a2657 100644 --- a/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System/ComponentModel/Design/CollectionEditorTests.cs +++ b/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System/ComponentModel/Design/CollectionEditorTests.cs @@ -41,6 +41,17 @@ public void CollectionEditor_Ctor_Type(Type type, Type expectedItemType) Assert.Equal(new Type[] { expectedItemType }, editor.NewItemTypes); } + [Fact] + public void CollectionEditor_EnsureEditor() + { + TypeDescriptor.AddEditorTable(typeof(UITypeEditor), UITypeEditor.s_intrinsicEditors); + + IList list = new List(); + var editor = TypeDescriptor.GetEditor(typeof(IList), typeof(UITypeEditor)); + Assert.NotNull(editor); + Assert.Equal(typeof(CollectionEditor).AssemblyQualifiedName, editor.GetType().ToString()); + } + [Fact] public void CollectionEditor_Ctor_NullType() { diff --git a/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System/Drawing/Design/FontEditorTests.cs b/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System/Drawing/Design/FontEditorTests.cs index b5514b21207..c7ecbbe3e58 100644 --- a/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System/Drawing/Design/FontEditorTests.cs +++ b/src/System.Windows.Forms.Design.Editors/tests/UnitTests/System/Drawing/Design/FontEditorTests.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -44,5 +44,14 @@ public void FontEditor_GetPaintValueSupported_Invoke_ReturnsFalse(ITypeDescripto var editor = new FontEditor(); Assert.False(editor.GetPaintValueSupported(context)); } + + //[Fact] + //public void EnsureEditor() + //{ + // var font = new Font(FontFamily.GenericSansSerif, 3.0f); + // var editor = TypeDescriptor.GetEditor(font, font.GetType()); + // Assert.NotNull(editor); + // Assert.Equal("System.Drawing.Design.FontEditor", editor.GetType().ToString()); + //} } } diff --git a/src/System.Windows.Forms/src/Properties/InternalsVisibleTo.cs b/src/System.Windows.Forms/src/Properties/InternalsVisibleTo.cs index 7bbe51eeb5e..3790fc241b9 100644 --- a/src/System.Windows.Forms/src/Properties/InternalsVisibleTo.cs +++ b/src/System.Windows.Forms/src/Properties/InternalsVisibleTo.cs @@ -5,6 +5,7 @@ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("System.Windows.Forms.Tests, PublicKey=00000000000000000400000000000000")] +[assembly: InternalsVisibleTo("System.Windows.Forms.Design.Editors.Tests, PublicKey=00000000000000000400000000000000")] // This is needed in order to Moq internal interfaces for testing [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] diff --git a/src/System.Windows.Forms/src/System/Drawing/Design/UITypeEditor.cs b/src/System.Windows.Forms/src/System/Drawing/Design/UITypeEditor.cs index 5c1471b896a..4e8265be886 100644 --- a/src/System.Windows.Forms/src/System/Drawing/Design/UITypeEditor.cs +++ b/src/System.Windows.Forms/src/System/Drawing/Design/UITypeEditor.cs @@ -5,6 +5,7 @@ using System.Collections; using System.Collections.ObjectModel; using System.ComponentModel; +using System.Drawing; using System.IO; namespace System.Drawing.Design @@ -14,23 +15,30 @@ namespace System.Drawing.Design /// public class UITypeEditor { - static UITypeEditor() + // Our set of intrinsic editors. + internal static Hashtable s_intrinsicEditors = new Hashtable { - Hashtable intrinsicEditors = new Hashtable - { - // Our set of intrinsic editors. - [typeof(DateTime)] = "System.ComponentModel.Design.DateTimeEditor, " + AssemblyRef.SystemDesign, - [typeof(Array)] = "System.ComponentModel.Design.ArrayEditor, " + AssemblyRef.SystemDesign, - [typeof(IList)] = "System.ComponentModel.Design.CollectionEditor, " + AssemblyRef.SystemDesign, - [typeof(ICollection)] = "System.ComponentModel.Design.CollectionEditor, " + AssemblyRef.SystemDesign, - [typeof(byte[])] = "System.ComponentModel.Design.BinaryEditor, " + AssemblyRef.SystemDesign, - [typeof(Stream)] = "System.ComponentModel.Design.BinaryEditor, " + AssemblyRef.SystemDesign, - [typeof(string[])] = "System.Windows.Forms.Design.StringArrayEditor, " + AssemblyRef.SystemDesign, - [typeof(Collection)] = "System.Windows.Forms.Design.StringCollectionEditor, " + AssemblyRef.SystemDesign - }; + // System.ComponentModel.Design editors + [typeof(DateTime)] = "System.ComponentModel.Design.DateTimeEditor, " + AssemblyRef.SystemDesign, + [typeof(Array)] = "System.ComponentModel.Design.ArrayEditor, " + AssemblyRef.SystemDesign, + [typeof(IList)] = "System.ComponentModel.Design.CollectionEditor, " + AssemblyRef.SystemDesign, + [typeof(ICollection)] = "System.ComponentModel.Design.CollectionEditor, " + AssemblyRef.SystemDesign, + [typeof(byte[])] = "System.ComponentModel.Design.BinaryEditor, " + AssemblyRef.SystemDesign, + [typeof(Stream)] = "System.ComponentModel.Design.BinaryEditor, " + AssemblyRef.SystemDesign, + + // System.Windows.Forms.Design editors + [typeof(string[])] = "System.Windows.Forms.Design.StringArrayEditor, " + AssemblyRef.SystemDesign, + [typeof(Collection)] = "System.Windows.Forms.Design.StringCollectionEditor, " + AssemblyRef.SystemDesign, + + // System.Drawing.Design editors + [typeof(Image)] = "System.Drawing.Design.ImageEditor, " + AssemblyRef.SystemDesign, + [typeof(Font)] = "System.Drawing.Design.FontEditor, " + AssemblyRef.SystemDesign, + }; + static UITypeEditor() + { // Add our intrinsic editors to TypeDescriptor. - TypeDescriptor.AddEditorTable(typeof(UITypeEditor), intrinsicEditors); + TypeDescriptor.AddEditorTable(typeof(UITypeEditor), s_intrinsicEditors); } ///