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)
5
using System.Collections.Generic;
6
using System.ComponentModel;
9
using System.Windows.Forms;
11
using ICSharpCode.RubyBinding;
12
using IronRuby.Compiler.Ast;
13
using NUnit.Framework;
14
using RubyBinding.Tests.Utils;
16
namespace RubyBinding.Tests.Designer
19
public class LoadInheritedProtectedPanelFormTestFixture : LoadFormTestFixtureBase
21
public override string RubyCode {
23
base.ComponentCreator.AddType("RubyBinding.Tests.Designer.ProtectedPanelDerivedForm", typeof(ProtectedPanelDerivedForm));
26
"class MainForm < RubyBinding::Tests::Designer::ProtectedPanelDerivedForm\r\n" +
27
" def InitializeComponent()\r\n" +
28
" self.SuspendLayout()\r\n" +
32
" self.panel1.Location = System::Drawing::Point.new(10, 15)\r\n" +
33
" self.panel1.Size = System::Drawing::Size.new(108, 120)\r\n" +
37
" self.Location = System::Drawing::Point.new(10, 20)\r\n" +
38
" self.Name = \"form1\"\r\n" +
39
" self.Controls.Add(@textBox1)\r\n" +
40
" self.ResumeLayout(False)\r\n" +
46
ProtectedPanelDerivedForm DerivedForm {
47
get { return Form as ProtectedPanelDerivedForm; }
51
public void PanelLocation()
53
Assert.AreEqual(new Point(10, 15), DerivedForm.PanelLocation);
57
public void PanelSize()
59
Assert.AreEqual(new Size(108, 120), DerivedForm.PanelSize);
63
public void GetProtectedPanelObject()
65
Assert.AreEqual(DerivedForm.GetPanel(), RubyControlFieldExpression.GetInheritedObject("panel1", DerivedForm));
69
public void GetProtectedPanelObjectIncorrectCase()
71
Assert.AreEqual(DerivedForm.GetPanel(), RubyControlFieldExpression.GetInheritedObject("PANEL1", DerivedForm));
75
public void GetInheritedObjectPassedNull()
77
Assert.IsNull(RubyControlFieldExpression.GetInheritedObject("panel1", null));
81
public void GetInheritedPanelObjectFromFieldExpression()
83
SimpleAssignmentExpression assignment = RubyParserHelper.GetSimpleAssignmentExpression("self.panel1.Name = \"abc\"");
84
RubyControlFieldExpression field = RubyControlFieldExpression.Create(assignment.Left as AttributeAccess);
86
Assert.AreEqual(DerivedForm.GetPanel(), field.GetObject(ComponentCreator));