1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
6
using System.ComponentModel;
7
using System.ComponentModel.Design;
8
using System.ComponentModel.Design.Serialization;
11
using System.Windows.Forms;
13
using ICSharpCode.AvalonEdit.Document;
14
using ICSharpCode.RubyBinding;
15
using ICSharpCode.Scripting.Tests.Utils;
16
using ICSharpCode.SharpDevelop.Dom;
17
using ICSharpCode.SharpDevelop.Editor;
18
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
19
using ICSharpCode.SharpDevelop.Refactoring;
20
using NUnit.Framework;
21
using RubyBinding.Tests.Utils;
22
using AvalonEdit = ICSharpCode.AvalonEdit;
24
namespace RubyBinding.Tests.Designer
27
/// Tests the code can be generated if there is no new line after the InitializeComponent method.
30
public class NoNewLineAfterInitializeComponentMethodTestFixture
32
TextDocument document;
35
public void SetUpFixture()
37
AvalonEdit.TextEditor textEditor = new AvalonEdit.TextEditor();
38
document = textEditor.Document;
39
textEditor.Text = GetTextEditorCode();
41
RubyParser parser = new RubyParser();
42
ICompilationUnit compilationUnit = parser.Parse(new DefaultProjectContent(), @"test.py", document.Text);
44
using (DesignSurface designSurface = new DesignSurface(typeof(UserControl))) {
45
IDesignerHost host = (IDesignerHost)designSurface.GetService(typeof(IDesignerHost));
46
UserControl userControl = (UserControl)host.RootComponent;
47
userControl.ClientSize = new Size(489, 389);
49
PropertyDescriptorCollection descriptors = TypeDescriptor.GetProperties(userControl);
50
PropertyDescriptor namePropertyDescriptor = descriptors.Find("Name", false);
51
namePropertyDescriptor.SetValue(userControl, "userControl1");
53
DesignerSerializationManager serializationManager = new DesignerSerializationManager(host);
54
using (serializationManager.CreateSession()) {
55
AvalonEditDocumentAdapter docAdapter = new AvalonEditDocumentAdapter(document, null);
56
RubyDesignerGenerator generator = new RubyDesignerGenerator(new MockTextEditorOptions());
57
generator.Merge(host, docAdapter, compilationUnit, serializationManager);
63
public void GeneratedCode()
66
"require \"System.Windows.Forms\"\r\n" +
68
"class MyUserControl < UserControl\r\n" +
69
"\tdef initialize()\r\n" +
70
"\t\tself.InitializeComponent()\r\n" +
73
"\tdef InitializeComponent()\r\n" +
74
"\t\tself.SuspendLayout()\r\n" +
76
"\t\t# userControl1\r\n" +
78
"\t\tself.Name = \"userControl1\"\r\n" +
79
"\t\tself.Size = System::Drawing::Size.new(489, 389)\r\n" +
80
"\t\tself.ResumeLayout(false)\r\n" +
84
Assert.AreEqual(expectedCode, document.Text);
88
/// No new line after the pass statement for InitializeComponent method.
90
string GetTextEditorCode()
93
"require \"System.Windows.Forms\"\r\n" +
95
"class MyUserControl < UserControl\r\n" +
96
"\tdef initialize()\r\n" +
97
"\t\tself.InitializeComponent()\r\n" +
100
"\tdef InitializeComponent()\r\n" +