Jo Shields 3c1f479b9d Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
2015-04-07 09:35:12 +01:00

236 lines
7.8 KiB
C#

//
// Tests for System.Web.UI.WebControls.HyperLinkFieldTest.cs
//
// Author:
// Yoni Klein (yonik@mainsoft.com)
//
//
// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Drawing;
using System.Collections;
using System.Collections.Specialized;
using NUnit.Framework;
using System.Data;
namespace MonoTests.System.Web.UI.WebControls
{
class PokerHyperLinkField : HyperLinkField
{
// View state Stuff
public PokerHyperLinkField ()
: base ()
{
TrackViewState ();
}
public object SaveState ()
{
return SaveViewState ();
}
public void LoadState (object o)
{
LoadViewState (o);
}
public StateBag StateBag
{
get { return base.ViewState; }
}
public Control GetControl
{
get { return base.Control; }
}
public void DoCopyProperties (DataControlField newField)
{
base.CopyProperties (newField);
}
public DataControlField DoCreateField ()
{
return base.CreateField ();
}
public string DoFormatDataNavigateUrlValue (object[] dataUrlValues)
{
return base.FormatDataNavigateUrlValue (dataUrlValues);
}
public string DoFormatDataTextValue (object dataTextValue)
{
return base.FormatDataTextValue (dataTextValue);
}
}
[TestFixture]
public class HyperLinkFieldTest
{
[Test]
public void HyperLinkField_DefaultProperty ()
{
HyperLinkField field = new HyperLinkField ();
Assert.AreEqual (0, ((Array) field.DataNavigateUrlFields).Length, "DataNavigateUrlFields");
Assert.AreEqual ("", field.DataNavigateUrlFormatString, "DataNavigateUrlFormatString");
Assert.AreEqual ("", field.DataTextField, "DataTextField");
Assert.AreEqual ("", field.DataTextFormatString, "DataTextFormatString");
Assert.AreEqual ("", field.NavigateUrl, "NavigateUrl");
Assert.AreEqual ("", field.Target, "Target");
Assert.AreEqual ("", field.Text, "Text");
}
[Test]
public void HyperLinkField_AssignProperty ()
{
HyperLinkField field = new HyperLinkField ();
field.DataNavigateUrlFields = new string[] { "test1", "test2" };
Assert.AreEqual (2, ((Array) field.DataNavigateUrlFields).Length, "DataNavigateUrlFieldsCount");
Assert.AreEqual ("test1", field.DataNavigateUrlFields[0], "DataNavigateUrlFields#1");
Assert.AreEqual ("test2", field.DataNavigateUrlFields[1], "DataNavigateUrlFields#2");
field.DataNavigateUrlFormatString = "test";
Assert.AreEqual ("test", field.DataNavigateUrlFormatString, "DataNavigateUrlFormatString");
field.DataTextField = "test";
Assert.AreEqual ("test", field.DataTextField, "DataTextField");
field.DataTextFormatString = "test";
Assert.AreEqual ("test", field.DataTextFormatString, "DataTextFormatString");
field.NavigateUrl = "test";
Assert.AreEqual ("test", field.NavigateUrl, "NavigateUrl");
field.Target = "test";
Assert.AreEqual ("test", field.Target, "Target");
field.Text = "test";
Assert.AreEqual ("test", field.Text, "Text");
}
[Test]
public void HyperLinkField_Initialize ()
{
PokerHyperLinkField field = new PokerHyperLinkField ();
Control control = new Control ();
control.ID = "test";
bool result = field.Initialize (true,control);
Assert.AreEqual (false, result, "InitializeResult");
Assert.AreEqual ("test", field.GetControl.ID, "InitializeControl");
}
[Test]
public void HyperLinkField_InitializeCell ()
{
HyperLinkField field = new HyperLinkField ();
DataControlFieldCell cell = new DataControlFieldCell (null);
field.Text = "Text";
field.NavigateUrl = "NavigateUrl";
field.Target = "Target";
field.InitializeCell (cell, DataControlCellType.DataCell, DataControlRowState.Normal, 0);
Assert.AreEqual(1,cell.Controls.Count , "CellControlsCountAfterCreation");
if (cell.Controls[0] is HyperLink) {
Assert.AreEqual ("Text", ((HyperLink) cell.Controls[0]).Text, "HyperLinkText");
Assert.AreEqual ("NavigateUrl", ((HyperLink) cell.Controls[0]).NavigateUrl, "HyperLinkNavigateUrl");
Assert.AreEqual ("Target", ((HyperLink) cell.Controls[0]).Target, "Target");
}
else
Assert.Fail ("HyperLink was not been created");
}
[Test]
public void HyperLinkField_ValidateSupportsCallback ()
{
//This method has been implemented as an empty method
}
[Test]
public void HyperLinkField_CopyProperty ()
{
PokerHyperLinkField field = new PokerHyperLinkField ();
HyperLinkField copy = new HyperLinkField ();
field.DataNavigateUrlFields = new string[] { "test1", "test2" };
field.DataNavigateUrlFormatString = "test";
field.DataTextField = "test";
field.DataTextFormatString = "test";
field.NavigateUrl = "test";
field.Target = "test";
field.Text = "test";
field.DoCopyProperties (copy);
Assert.AreEqual (2, ((Array) copy.DataNavigateUrlFields).Length, "DataNavigateUrlFieldsCount");
Assert.AreEqual ("test1", copy.DataNavigateUrlFields[0], "DataNavigateUrlFields#1");
Assert.AreEqual ("test2", copy.DataNavigateUrlFields[1], "DataNavigateUrlFields#2");
Assert.AreEqual ("test", copy.DataNavigateUrlFormatString, "DataNavigateUrlFormatString ");
Assert.AreEqual ("test", copy.DataTextField, "DataTextField");
Assert.AreEqual ("test", copy.DataTextFormatString, "DataTextFormatString");
Assert.AreEqual ("test", copy.NavigateUrl, "NavigateUrl");
Assert.AreEqual ("test", copy.Target, "Target");
Assert.AreEqual ("test", copy.Text, "Text");
}
[Test]
public void HyperLinkField_CreateField ()
{
PokerHyperLinkField field = new PokerHyperLinkField ();
DataControlField newfield = field.DoCreateField ();
if (!(newfield is HyperLinkField)) {
Assert.Fail ("New HyperLinkField was not created");
}
}
[Test]
public void HyperLinkField_FormatDataNavigateUrlValue ()
{
PokerHyperLinkField field = new PokerHyperLinkField ();
string result = field.DoFormatDataNavigateUrlValue (null);
Assert.AreEqual ("", result, "FormatDataNavigateUrlValueNoArgs");
field.DataNavigateUrlFormatString = "-{0,8:G}-";
object[] ob = new object[] { 10 };
result = field.DoFormatDataNavigateUrlValue(ob);
Assert.AreEqual ("- 10-", result, "FormatDataNavigateUrlValue");
}
[Test]
public void HyperLinkField_FormatDataTextValue ()
{
PokerHyperLinkField field = new PokerHyperLinkField ();
string result = field.DoFormatDataTextValue (null);
Assert.AreEqual ("", result, "FormatDataTextValueNoArgs");
field.DataTextFormatString = "-{0,8:G}-";
result = field.DoFormatDataTextValue (10);
Assert.AreEqual ("- 10-", result, "FormatDataTextValueNoArgs");
}
[Test]
[ExpectedException(typeof(IndexOutOfRangeException))]
public void HyperLinkField_AssignPropertyExepton ()
{
PokerHyperLinkField field = new PokerHyperLinkField ();
field.DataNavigateUrlFields[0] = "test";
}
}
}