2 // Tests for System.Web.UI.WebControls.ListBoxTest.cs
5 // Jackson Harper (jackson@ximian.com)
9 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using NUnit.Framework;
34 using System.Collections;
35 using System.Globalization;
38 using System.Web.UI.WebControls;
39 using MonoTests.stand_alone.WebHarness;
40 using MonoTests.SystemWeb.Framework;
42 namespace MonoTests.System.Web.UI.WebControls
45 public class ListControlPoker : ListControl {
47 public ListControlPoker ()
51 public void TrackState ()
56 public object SaveState ()
58 return SaveViewState ();
61 public void LoadState (object state)
63 LoadViewState (state);
66 public object ViewStateValue (string name)
68 return ViewState [name];
71 public string Render ()
73 StringWriter sw = new StringWriter ();
75 HtmlTextWriter writer = new HtmlTextWriter (sw);
77 return writer.InnerWriter.ToString ();
80 public bool GetIsTrackingViewState ()
82 return IsTrackingViewState;
84 public HtmlTextWriterTag GetTagKey ()
89 public new void OnSelectedIndexChanged (EventArgs e)
91 base.OnSelectedIndexChanged (e);
94 public new void OnTextChanged (EventArgs e)
96 base.OnTextChanged (e);
99 public new void VerifyMultiSelect ()
101 base.VerifyMultiSelect ();
107 public class ListControlTest
109 #region help_class_for_addattributetorender
110 class Poker : ListControl
112 public void TrackState ()
117 public object SaveState ()
119 return SaveViewState ();
122 public void LoadState (object state)
124 LoadViewState (state);
127 public object ViewStateValue (string name)
129 return ViewState[name];
133 public string Render ()
135 StringWriter sw = new StringWriter ();
137 HtmlTextWriter writer = new HtmlTextWriter (sw);
138 base.Render (writer);
139 return writer.InnerWriter.ToString ();
141 ArrayList Databound ()
143 ArrayList list = new ArrayList ();
150 public HtmlTextWriterTag GetTagKey ()
155 protected override void AddAttributesToRender (HtmlTextWriter writer)
157 writer.AddAttribute (HtmlTextWriterAttribute.Type, "MyType");
158 writer.AddAttribute (HtmlTextWriterAttribute.Name, "MyName");
159 writer.AddAttribute (HtmlTextWriterAttribute.Value, "MyValue");
160 base.AddAttributesToRender (writer);
163 protected internal override void PerformDataBinding (IEnumerable dataSource)
165 base.PerformDataBinding (Databound());
168 protected override void PerformSelect ()
170 base.PerformSelect ();
174 public new void SetPostDataSelection(int selectedItem)
176 base.SetPostDataSelection(selectedItem);
180 private Hashtable changed = new Hashtable ();
185 WebTest.CopyResource (GetType (), "ListControlPage.aspx", "ListControlPage.aspx");
189 public void DefaultProperties ()
191 ListControlPoker p = new ListControlPoker ();
193 Assert.AreEqual (p.AutoPostBack, false, "A1");
194 Assert.AreEqual (p.DataMember, String.Empty, "A2");
195 Assert.AreEqual (p.DataSource, null, "A3");
196 Assert.AreEqual (p.DataTextField, String.Empty, "A4");
197 Assert.AreEqual (p.DataTextFormatString, String.Empty, "A5");
198 Assert.AreEqual (p.DataValueField, String.Empty, "A6");
199 Assert.AreEqual (p.Items.Count, 0, "A7");
200 Assert.AreEqual (p.SelectedIndex, -1,"A8");
201 Assert.AreEqual (p.SelectedItem, null, "A9");
202 Assert.AreEqual (p.SelectedValue, String.Empty, "A10");
203 Assert.IsFalse (p.AppendDataBoundItems, "A11");
204 Assert.AreEqual (p.Text, "", "A12");
205 Assert.AreEqual (p.GetTagKey(), HtmlTextWriterTag.Select, "A13");
206 Assert.AreEqual (false, p.AppendDataBoundItems, "A14");
207 Assert.AreEqual (false, p.CausesValidation, "A15");
211 public void AddAttributesToRender ()
213 Poker p = new Poker ();
214 ListItem foo = new ListItem ("foo");
215 ListItem bar = new ListItem ("bar");
219 string orig = "<select type=\"MyType\" name=\"MyName\" value=\"MyValue\">\n\t<option value=\"foo\">foo</option>\n\t<option value=\"bar\">bar</option>\n\n</select>";
221 string html = p.Render ();
222 HtmlDiff.AssertAreEqual(orig,html,"AddAttributesToRender failed");
226 public void AppendDataBoundItems ()
228 ListControlPoker p = new ListControlPoker ();
229 ListItem foo = new ListItem ("foo");
230 ListItem bar = new ListItem ("bar");
233 Assert.AreEqual (2, p.Items.Count, "Before databound");
234 p.AppendDataBoundItems = true; // Not to clear list before databind
235 p.DataSource = Databound ();
237 Assert.AreEqual (5, p.Items.Count, "After databound");
238 p.AppendDataBoundItems = false; // To clear list before databind
240 Assert.AreEqual (3, p.Items.Count, "Clear list and databound");
243 ArrayList Databound ()
245 ArrayList list = new ArrayList ();
253 [Category ("NunitWeb")]
254 public void CausesValidation_ValidationGroup ()
256 WebTest t = new WebTest ("ListControlPage.aspx");
257 string str = t.Run ();
258 FormRequest fr = new FormRequest (t.Response, "form1");
259 fr.Controls.Add ("__EVENTTARGET");
260 fr.Controls.Add ("__EVENTARGUMENT");
261 fr.Controls.Add ("ListBox1");
262 fr.Controls["__EVENTTARGET"].Value = "ListBox1";
263 fr.Controls["__EVENTARGUMENT"].Value = "";
264 fr.Controls["ListBox1"].Value = "2";
266 string html = t.Run ();
268 if (html.IndexOf ("Validate_validation_group") == -1)
269 Assert.Fail ("Validate not created");
270 if (html.IndexOf ("MyValidationGroup") == -1)
271 Assert.Fail ("Wrong validation group");
275 public void OnTextChanged ()
277 ListControlPoker p = new ListControlPoker ();
278 p.TextChanged += new EventHandler (p_TextChanged);
279 Assert.AreEqual (false, eventTextChanged, "Before");
280 p.OnTextChanged (new EventArgs ());
281 Assert.AreEqual (true, eventTextChanged, "After");
284 bool eventTextChanged;
285 void p_TextChanged (object sender, EventArgs e)
287 eventTextChanged = true;
291 public void PerformDataBind_PerformSelect ()
293 Poker p = new Poker ();
295 string html = p.Render ();
297 string orig = "<select type=\"MyType\" name=\"MyName\" value=\"MyValue\">\n\t<option selected=\"selected\" value=\"1\">1</option>\n\t<option value=\"2\">2</option>\n\t<option value=\"3\">3</option>\n\n</select>";
299 HtmlDiff.AssertAreEqual (orig, html, "PerformDataBind");
303 [Category("NotWorking")] //Not implemented
304 public void SetPostDataSelection ()
306 Poker p = new Poker ();
307 ListItem foo = new ListItem ("foo");
308 ListItem bar = new ListItem ("bar");
311 p.SetPostDataSelection (1);
312 Assert.AreEqual (1, p.SelectedIndex, "SetPostDataSelection");
318 Poker p = new Poker ();
319 ListItem foo = new ListItem ("foo");
320 ListItem bar = new ListItem ("bar");
323 Assert.AreEqual (string.Empty, p.Text, "Text#1");
325 Assert.AreEqual ("bar", p.Text, "Text#2");
328 #region HelpListForMultiple
329 class PokerL : ListBox
333 InitializeMyListBox ();
335 private void InitializeMyListBox ()
337 // Add items to the ListBox.
346 // Set the SelectionMode to select multiple items.
347 SelectionMode = ListSelectionMode.Multiple;
349 Items[0].Selected = true;
350 Items[2].Selected = true;
353 public void TrackState ()
358 public object SaveState ()
360 return SaveViewState ();
363 public void LoadState (object state)
365 LoadViewState (state);
368 public object ViewStateValue (string name)
370 return ViewState[name];
373 public string Render ()
375 StringWriter sw = new StringWriter ();
377 HtmlTextWriter writer = new HtmlTextWriter (sw);
378 base.Render (writer);
379 return writer.InnerWriter.ToString ();
384 public void Multiple ()
386 PokerL p = new PokerL ();
387 Assert.AreEqual (true, p.Items[0].Selected, "MultipleSelect#1");
388 Assert.AreEqual (true, p.Items[2].Selected, "MultipleSelect#2");
389 string html = p.Render ();
391 string orig = "<select size=\"4\" multiple=\"multiple\">\n\t<option selected=\"selected\" value=\"A\">A</option>\n\t<option value=\"C\">C</option>\n\t<option selected=\"selected\" value=\"E\">E</option>\n\t<option value=\"F\">F</option>\n\t<option value=\"G\">G</option>\n\t<option value=\"D\">D</option>\n\t<option value=\"B\">B</option>\n\n</select>";
393 HtmlDiff.AssertAreEqual (orig, html, "MultipleSelect#3");
397 public void CleanProperties ()
399 ListControlPoker p = new ListControlPoker ();
401 p.AutoPostBack = true;
402 Assert.AreEqual (p.AutoPostBack, true, "A2");
404 p.DataMember = "DataMember";
405 Assert.AreEqual (p.DataMember, "DataMember", "A3");
407 p.DataSource = "DataSource";
408 Assert.AreEqual (p.DataSource, "DataSource", "A4");
410 p.DataTextField = "DataTextField";
411 Assert.AreEqual (p.DataTextField, "DataTextField", "A5");
413 p.DataTextFormatString = "DataTextFormatString";
414 Assert.AreEqual (p.DataTextFormatString, "DataTextFormatString", "A6");
416 p.DataValueField = "DataValueField";
417 Assert.AreEqual (p.DataValueField, "DataValueField", "A7");
419 p.SelectedIndex = 10;
420 Assert.AreEqual (p.SelectedIndex, -1, "A8");
422 p.SelectedValue = "SelectedValue";
423 Assert.AreEqual (p.SelectedValue, String.Empty, "A9");
427 public void NullProperties ()
429 ListControlPoker p = new ListControlPoker ();
432 Assert.AreEqual (p.DataMember, String.Empty, "A1");
435 Assert.AreEqual (p.DataSource, null, "A2");
437 p.DataTextField = null;
438 Assert.AreEqual (p.DataTextField, String.Empty, "A3");
440 p.DataTextFormatString = null;
441 Assert.AreEqual (p.DataTextFormatString, String.Empty, "A4");
443 p.DataValueField = null;
444 Assert.AreEqual (p.DataValueField, String.Empty, "A5");
446 p.SelectedValue = null;
447 Assert.AreEqual (p.SelectedValue, String.Empty, "A6");
451 public void ClearSelection ()
453 ListControlPoker p = new ListControlPoker ();
455 ListItem foo = new ListItem ("foo");
456 ListItem bar = new ListItem ("bar");
458 BeginIndexChanged (p);
464 // sanity for the real test
465 Assert.AreEqual (p.Items.Count, 2, "A1");
466 Assert.AreEqual (p.SelectedIndex, 1, "A2");
467 Assert.AreEqual (p.SelectedItem, bar, "A3");
468 Assert.AreEqual (p.SelectedValue, bar.Value, "A4");
472 Assert.AreEqual (p.SelectedIndex, -1, "A5");
473 Assert.AreEqual (p.SelectedItem, null, "A6");
474 Assert.AreEqual (p.SelectedValue, String.Empty, "A7");
475 Assert.IsFalse (EndIndexChanged (p), "A8");
477 // make sure we are still sane
478 Assert.AreEqual (p.Items.Count, 2, "A9");
482 // Tests Save/Load ControlState
483 public void ControlState ()
485 ListControlPoker a = new ListControlPoker ();
486 ListControlPoker b = new ListControlPoker ();
499 Assert.AreEqual (-1, b.SelectedIndex, "A1");
503 // Tests Save/Load/Track ViewState
504 public void ViewState ()
506 ListControlPoker a = new ListControlPoker ();
507 ListControlPoker b = new ListControlPoker ();
511 BeginIndexChanged (a);
512 BeginIndexChanged (b);
519 object state = a.SaveState ();
522 Assert.AreEqual (2, b.SelectedIndex, "A1");
523 Assert.AreEqual (b.Items.Count, 3, "A2");
525 Assert.AreEqual (b.Items [0].Value, "a", "A3");
526 Assert.AreEqual (b.Items [1].Value, "b", "A4");
527 Assert.AreEqual (b.Items [2].Value, "c", "A5");
529 Assert.IsFalse (EndIndexChanged (a), "A6");
530 Assert.IsFalse (EndIndexChanged (b), "A7");
534 // Tests Save/Load/Track ViewState
535 public void ViewStateIsNeeded ()
537 ListControlPoker a = new ListControlPoker ();
538 IStateManager sm = a.Items as IStateManager;
540 Assert.IsFalse (a.GetIsTrackingViewState (), "#A1-1");
541 Assert.IsFalse (sm.IsTrackingViewState, "#A1-2");
542 object state = a.SaveState ();
543 Assert.IsNotNull (state, "#A1-3");
549 Assert.IsFalse (a.GetIsTrackingViewState (), "#A2-1");
550 Assert.IsFalse (sm.IsTrackingViewState, "#A2-2");
552 state = a.SaveState ();
553 Assert.IsNotNull (state, "#A3");
557 public void ViewStateContents ()
559 ListControlPoker p = new ListControlPoker ();
563 // So the selected index can be set
567 p.AutoPostBack = false;
568 p.DataMember = "DataMember";
569 p.DataSource = "DataSource";
570 p.DataTextField = "DataTextField";
571 p.DataTextFormatString = "DataTextFormatString";
572 p.DataValueField = "DataValueField";
574 p.AppendDataBoundItems = true;
577 Assert.AreEqual (p.ViewStateValue ("AutoPostBack"), false, "A1");
578 Assert.AreEqual (p.ViewStateValue ("DataMember"), "DataMember", "A2");
580 Assert.AreEqual (p.ViewStateValue ("DataSource"), null, "A3");
581 Assert.AreEqual (p.ViewStateValue ("DataTextField"), "DataTextField", "A4");
582 Assert.AreEqual (p.ViewStateValue ("DataTextFormatString"),
583 "DataTextFormatString", "A5");
584 Assert.AreEqual (p.ViewStateValue ("DataValueField"), "DataValueField", "A6");
586 Assert.AreEqual (p.ViewStateValue ("AppendDataBoundItems"), true, "A7");
588 // None of these are saved
589 Assert.AreEqual (p.ViewStateValue ("SelectedIndex"), null, "A8");
590 Assert.AreEqual (p.ViewStateValue ("SelectedItem"), null, "A9");
591 Assert.AreEqual (p.ViewStateValue ("SelectedValue"), null, "A10");
592 Assert.AreEqual (p.ViewStateValue ("Text"), null, "A11");
597 public void SelectedIndex ()
599 ListControlPoker p = new ListControlPoker ();
603 p.Items.Add ("three");
604 p.Items.Add ("four");
606 p.Items [2].Selected = true;
607 p.Items [1].Selected = true;
609 Assert.AreEqual (p.SelectedIndex, 1, "A1");
612 p.Items [3].Selected = true;
614 Assert.AreEqual (p.SelectedIndex, 3, "A2");
617 Assert.AreEqual (p.SelectedIndex, 1, "A3");
618 Assert.IsFalse (p.Items [3].Selected, "A4");
622 public void Render ()
624 ListControlPoker p = new ListControlPoker ();
626 string s = p.Render ();
627 string expected = "<select>\n\n</select>";
628 Assert.AreEqual (s, expected, "A1");
632 public void ItemsTooHigh ()
634 ListControlPoker l = new ListControlPoker ();
638 Assert.AreEqual (-1, l.SelectedIndex, "#01");
642 [ExpectedException (typeof (ArgumentOutOfRangeException))]
643 public void ItemsTooLow ()
645 ListControlPoker l = new ListControlPoker ();
648 l.SelectedIndex = -2;
652 public void ItemsOk ()
654 ListControlPoker l = new ListControlPoker ();
658 l.SelectedIndex = -1;
662 public void DataBinding1 ()
664 ListControlPoker p = new ListControlPoker ();
665 ArrayList list = new ArrayList ();
671 Assert.AreEqual (-1, p.SelectedIndex, "#01");
673 Assert.AreEqual (2, p.SelectedIndex, "#02");
674 Assert.AreEqual (3.ToString (), p.SelectedValue, "#03");
678 [ExpectedException (typeof (ArgumentException))] // The SelectedIndex and SelectedValue are mutually exclusive
679 public void DataBinding2 ()
681 ListControlPoker p = new ListControlPoker ();
682 ArrayList list = new ArrayList ();
688 p.SelectedValue = "3";
693 public void DataBinding3 ()
695 ListControlPoker p = new ListControlPoker ();
696 ArrayList list = new ArrayList ();
701 // If Index and Value are used, everything's ok if they are selecting
704 p.SelectedValue = "3";
705 Assert.AreEqual ("", p.SelectedValue, "#01");
707 Assert.AreEqual ("3", p.SelectedValue, "#02");
711 [ExpectedException (typeof (NullReferenceException))]
712 public void DataBinding4 ()
714 ListControlPoker p = new ListControlPoker ();
715 ArrayList list = new ArrayList ();
724 public void DataBinding6 () {
725 ListControlPoker p = new ListControlPoker ();
726 ArrayList list = new ArrayList ();
732 Assert.AreEqual (3, p.Items.Count, "#01");
735 Assert.AreEqual (3, p.Items.Count, "#01");
739 public void DataBinding7 () {
740 ListControlPoker p = new ListControlPoker ();
741 ArrayList list = new ArrayList ();
748 p.SelectedValue = "3";
749 Assert.AreEqual (2, p.SelectedIndex, "#01");
752 Assert.AreEqual ("3", p.SelectedValue, "#02");
753 Assert.AreEqual (2, p.SelectedIndex, "#03");
757 [ExpectedException (typeof (ArgumentOutOfRangeException))]
758 public void DataBinding8 () {
759 ListControlPoker p = new ListControlPoker ();
760 ArrayList list = new ArrayList ();
767 p.SelectedValue = "3";
768 Assert.AreEqual (2, p.SelectedIndex, "#01");
770 list = new ArrayList ();
776 Assert.AreEqual ("3", p.SelectedValue, "#01");
777 Assert.AreEqual (2, p.SelectedIndex, "#01");
781 [ExpectedException (typeof (ArgumentOutOfRangeException))]
782 public void DataBinding9 () {
783 ListControlPoker p = new ListControlPoker ();
784 ArrayList list = new ArrayList ();
789 p.SelectedValue = "5";
794 public void DataBinding1a () {
795 ListControlPoker p = new ListControlPoker ();
796 ArrayList list = new ArrayList ();
802 Assert.AreEqual (-1, p.SelectedIndex, "#01");
804 Assert.AreEqual (-1, p.SelectedIndex, "#02");
805 Assert.AreEqual ("", p.SelectedValue, "#03");
809 public void DataBinding10 () {
810 ListControlPoker p = new ListControlPoker ();
811 ArrayList list = new ArrayList ();
818 p.SelectedValue = "5";
819 Assert.AreEqual ("", p.SelectedValue, "#01");
822 Assert.AreEqual (-1, p.SelectedIndex, "#02");
826 public void DataBinding11 () {
827 ListControlPoker p = new ListControlPoker ();
828 ArrayList list = new ArrayList ();
833 p.SelectedValue = "3";
836 p.SelectedValue = "5";
837 Assert.AreEqual ("3", p.SelectedValue, "#01");
840 Assert.AreEqual (2, p.SelectedIndex, "#02");
843 Assert.AreEqual ("", p.SelectedValue, "#03");
844 Assert.AreEqual (-1, p.SelectedIndex, "#04");
846 p.Items.Add (new ListItem ("1"));
847 p.Items.Add (new ListItem ("2"));
848 p.Items.Add (new ListItem ("3"));
849 p.Items.Add (new ListItem ("4"));
850 p.Items.Add (new ListItem ("5"));
851 Assert.AreEqual ("", p.SelectedValue, "#05");
852 Assert.AreEqual (-1, p.SelectedIndex, "#06");
854 list = new ArrayList ();
862 Assert.AreEqual ("5", p.SelectedValue, "#07");
863 Assert.AreEqual (4, p.SelectedIndex, "#08");
871 public Data (string name, object val)
881 public object Value {
887 public void DataBinding5 ()
889 ListControlPoker p = new ListControlPoker ();
890 p.DataTextField = "Name";
891 p.DataValueField = "Value";
892 ArrayList list = new ArrayList ();
893 list.Add (new Data ("uno", 1));
894 list.Add (new Data ("dos", 2));
895 list.Add (new Data ("tres", 3));
899 Assert.AreEqual (3.ToString (), p.SelectedValue, "#01");
900 Assert.AreEqual ("tres", p.SelectedItem.Text, "#01");
904 public void DataBindingFormat1 ()
906 ListControlPoker p = new ListControlPoker ();
907 ArrayList list = new ArrayList ();
912 p.DataTextFormatString = "{0:00}";
915 Assert.AreEqual ("3", p.SelectedValue, "#01");
919 public void DataBindingFormat2 ()
921 ListControlPoker p = new ListControlPoker ();
922 ArrayList list = new ArrayList ();
927 p.DataTextFormatString = "{0:00}";
930 Assert.IsNotNull (p.SelectedItem, "#00");
931 Assert.AreEqual ("03", p.SelectedItem.Text, "#01");
935 [ExpectedException (typeof (NullReferenceException))]
936 public void DataBindingFormat3 ()
938 ListControlPoker p = new ListControlPoker ();
939 ArrayList list = new ArrayList ();
944 p.DataTextFormatString = "{0:00}";
949 private void BeginIndexChanged (ListControl l)
951 l.SelectedIndexChanged += new EventHandler (IndexChangedHandler);
954 private bool EndIndexChanged (ListControl l)
956 bool res = changed [l] != null;
961 private void IndexChangedHandler (object sender, EventArgs e)
963 changed [sender] = new object ();
967 public void ValueFound1 ()
969 ListControlPoker p = new ListControlPoker ();
971 p.SelectedValue = "one";
975 public void ValueNotFound1 ()
977 ListControlPoker p = new ListControlPoker ();
979 p.SelectedValue = "dos";
980 Assert.AreEqual("", p.SelectedValue, "SelectedValue");
981 Assert.AreEqual(null, p.SelectedItem, "SelectedItem");
982 Assert.AreEqual(-1, p.SelectedIndex, "SelectedIndex");
986 public void ValueNotFound2 ()
988 ListControlPoker p = new ListControlPoker ();
989 p.SelectedValue = "dos";
990 Assert.AreEqual("", p.SelectedValue, "SelectedValue");
991 Assert.AreEqual(null, p.SelectedItem, "SelectedItem");
992 Assert.AreEqual(-1, p.SelectedIndex, "SelectedIndex");
995 [ExpectedException (typeof (HttpException))]
996 public void VerifyMultiSelect_Exception ()
998 ListControlPoker p = new ListControlPoker ();
999 p.VerifyMultiSelect ();
1003 public void DataBinding_SelectedValue () {
1004 ListControlPoker p = new ListControlPoker ();
1005 p.SelectedValue = "b";
1007 p.Items.Add (new ListItem ("a", "a"));
1008 p.Items.Add (new ListItem ("b", "b"));
1009 p.Items.Add (new ListItem ("c", "c"));
1011 Assert.IsFalse (p.Items [1].Selected, "SelectedIndex");
1013 Assert.IsTrue (p.Items [1].Selected, "SelectedIndex");
1017 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1018 public void DataBinding_SelectedValue_Exception () {
1019 ListControlPoker p = new ListControlPoker ();
1020 p.SelectedValue = "AAA";
1022 p.Items.Add (new ListItem ("a", "a"));
1023 p.Items.Add (new ListItem ("b", "b"));
1024 p.Items.Add (new ListItem ("c", "c"));
1026 Assert.IsFalse (p.Items [1].Selected, "SelectedIndex");
1028 Assert.IsTrue (p.Items [1].Selected, "SelectedIndex");
1031 [TestFixtureTearDown]
1032 public void TearDown ()