/// <summary> /// Compare ValidationSummaryItems for display in the ValidationSummary /// </summary> /// <param name="x">The first reference used for comparison.</param> /// <param name="y">The second reference used for comparison.</param> /// <returns>The result of the comparison check between the two references.</returns> internal static int CompareValidationSummaryItems(ValidationSummaryItem x, ValidationSummaryItem y) { int returnVal; if (!ReferencesAreValid(x, y, out returnVal)) { // Do a null comparison check if one (or both) are null return(returnVal); } // Compare ErrorSource if (TryCompareReferences(x.ItemType, y.ItemType, out returnVal)) { return(returnVal); } // Compare Control Control controlX = x.Sources.Count > 0 ? x.Sources[0].Control : null; Control controlY = y.Sources.Count > 0 ? y.Sources[0].Control : null; if (controlX != controlY) { if (!ReferencesAreValid(controlX, controlY, out returnVal)) { // Do a null comparison check if one is null return(returnVal); } // Both are controls if (controlX.TabIndex != controlY.TabIndex) { // Sort by TabIndex return(controlX.TabIndex.CompareTo(controlY.TabIndex)); } // Both share the same parent, sort by index returnVal = SortByVisualTreeOrdering(controlX, controlY); if (returnVal != 0) { return(returnVal); } // TabIndexes and ordering are the same, move to next check if (TryCompareReferences(controlX.Name, controlY.Name, out returnVal)) { return(returnVal); } } // If we reached this point, we could not compare by Control, TabIndex, nor Name. // Compare by MessageHeader if (TryCompareReferences(x.MessageHeader, y.MessageHeader, out returnVal)) { return(returnVal); } // Compare by ErrorMessage TryCompareReferences(x.Message, y.Message, out returnVal); return(returnVal); }
/// <summary> /// Function to publish message to the message panel. /// </summary> /// <param name="msg"></param> public void PublishMessage(XElement msg) { string severity = string.Empty; if (msg.Attribute(Common.MessageType) != null) { severity = msg.Attribute(Common.MessageType).Value.ToUpper(); } string message = msg.Value; ValidationSummaryItem item = new ValidationSummaryItem(msg.Value); //TextBlock MSG = new TextBlock(); //MSG.Text = message; //if (severity == "ERROR") //{ // MSG.Foreground = new SolidColorBrush(Colors.Red); //} //else if (severity == "WARNING") //{ // MSG.Foreground = new SolidColorBrush(Colors.Black); //} //else //{ // MSG.Foreground = new SolidColorBrush(Colors.Green); //} if (msg.Attribute(Common.PopupMessage) != null && Common.boolValue(msg.Attribute(Common.PopupMessage).Value)) { ApplicationEx.Instance.DisplayMessageBox(message, severity); } this.Errors.Add(item); }
public void ValidationSummaryPeerInvoke() { ValidationSummaryTestPage page = new ValidationSummaryTestPage(); this.TestPanel.Children.Add(page); ValidationSummary vs = page.validationSummary; this.EnqueueConditional(() => { return(page.validationSummary.Initialized); }); this.EnqueueCallback(() => { bool clicked = false; FocusingInvalidControlEventArgs eArgs = null; ValidationSummaryItem vsi = null; vs.FocusingInvalidControl += new EventHandler <FocusingInvalidControlEventArgs>(delegate(object o, FocusingInvalidControlEventArgs e) { clicked = true; eArgs = e; vsi = e.Item; }); ValidationSummaryAutomationPeer peer = new ValidationSummaryAutomationPeer(vs); Assert.IsNotNull(peer); ((IInvokeProvider)peer).Invoke(); Assert.IsFalse(clicked, "No error is selected, so the event should not fire"); ValidationSummaryItem newEsi = new ValidationSummaryItem(null, "test error", ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource("property name", page.nameTextBox), this); vs.Errors.Add(newEsi); vs.ErrorsListBoxInternal.SelectedItem = newEsi; ((IInvokeProvider)peer).Invoke(); Assert.IsTrue(clicked, "Invoking with a selected ESI triggers the event to fire"); Assert.AreEqual(newEsi, vsi, "The ESI should match the selected item"); Assert.AreEqual("property name", eArgs.Target.PropertyName, "The source should match the selected item"); }); EnqueueTestComplete(); }
public void ValidationSummaryPeerInvoke() { ValidationSummaryTestPage page = new ValidationSummaryTestPage(); this.TestPanel.Children.Add(page); ValidationSummary vs = page.validationSummary; this.EnqueueConditional(() => { return page.validationSummary.Initialized; }); this.EnqueueCallback(() => { bool clicked = false; FocusingInvalidControlEventArgs eArgs = null; ValidationSummaryItem vsi = null; vs.FocusingInvalidControl += new EventHandler<FocusingInvalidControlEventArgs>(delegate(object o, FocusingInvalidControlEventArgs e) { clicked = true; eArgs = e; vsi = e.Item; }); ValidationSummaryAutomationPeer peer = new ValidationSummaryAutomationPeer(vs); Assert.IsNotNull(peer); ((IInvokeProvider)peer).Invoke(); Assert.IsFalse(clicked, "No error is selected, so the event should not fire"); ValidationSummaryItem newEsi = new ValidationSummaryItem(null, "test error", ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource("property name", page.nameTextBox), this); vs.Errors.Add(newEsi); vs.ErrorsListBoxInternal.SelectedItem = newEsi; ((IInvokeProvider)peer).Invoke(); Assert.IsTrue(clicked, "Invoking with a selected ESI triggers the event to fire"); Assert.AreEqual(newEsi, vsi, "The ESI should match the selected item"); Assert.AreEqual("property name", eArgs.Target.PropertyName, "The source should match the selected item"); }); EnqueueTestComplete(); }
private void ExecuteClick(object sender) { ListBox lb = sender as ListBox; if (lb != null) { ValidationSummaryItem vsi = lb.SelectedItem as ValidationSummaryItem; if (vsi != null && this.FocusControlsOnClick) { int idx; // Ensure the currently selected item source is valid if (vsi.Sources.Count == 0) { // Clear the current ESI source if the ESI has none, such as when the ESI has changed this._currentValidationSummaryItemSource = null; } else { // If the current ESI source is not part of the current set, select the first one by default. idx = FindMatchingErrorSource(vsi.Sources, this._currentValidationSummaryItemSource); if (idx < 0) { this._currentValidationSummaryItemSource = vsi.Sources[0]; } } // Raise the event FocusingInvalidControlEventArgs e = new FocusingInvalidControlEventArgs(vsi, this._currentValidationSummaryItemSource); this.OnFocusingInvalidControl(e); #if OPENSILVER // Raise the AutomationPeer event ValidationSummaryAutomationPeer peer = ValidationSummaryAutomationPeer.FromElement(this) as ValidationSummaryAutomationPeer; if (peer != null && AutomationPeer.ListenerExists(AutomationEvents.InvokePatternOnInvoked)) { peer.RaiseAutomationEvent(AutomationEvents.InvokePatternOnInvoked); } #endif // Focus the target, which will usually be the current ESI source or the overwritten one if (!e.Handled && e.Target != null && e.Target.Control != null) { e.Target.Control.Focus(); } // Update currently selected item, but only if there are multiple ESI sources. if (vsi.Sources.Count > 0) { idx = FindMatchingErrorSource(vsi.Sources, e.Target); idx = idx < 0 ? 0 : ++idx % vsi.Sources.Count; this._currentValidationSummaryItemSource = vsi.Sources[idx]; } } } }
public void FocusCycling() { ValidationSummaryTestPage page = new ValidationSummaryTestPage(); this.TestPanel.Children.Add(page); ValidationSummary vs = page.validationSummary; this.EnqueueConditional(() => { return(page.validationSummary.Initialized); }); this.EnqueueCallback(() => { page.nameTextBox.Text = "ABCDEFG!@#$"; Assert.AreEqual(1, vs.Errors.Count); ValidationSummaryItem newVsi = new ValidationSummaryItem(null, "test error", ValidationSummaryItemType.ObjectError, null, null); ValidationSummaryItemSource source1 = new ValidationSummaryItemSource("prop1", page.nameTextBox); newVsi.Sources.Add(source1); ValidationSummaryItemSource source2 = new ValidationSummaryItemSource("prop2", page.emailTextBox); newVsi.Sources.Add(source2); vs.Errors.Add(newVsi); ValidationSummaryItem newVsi2 = new ValidationSummaryItem(null, "test error", ValidationSummaryItemType.ObjectError, null, null); vs.Errors.Add(newVsi2); // Setup the delegate to capture the event vs.ErrorsListBoxInternal.SelectedItem = newVsi; ValidationSummaryItemSource selectedSource = null; vs.FocusingInvalidControl += new EventHandler <FocusingInvalidControlEventArgs>(delegate(object o, FocusingInvalidControlEventArgs e) { selectedSource = e.Target; }); // First click vs.ExecuteClickInternal(); Assert.AreEqual(source1, selectedSource); // Second vs.ExecuteClickInternal(); Assert.AreEqual(source2, selectedSource); // Cycle back vs.ExecuteClickInternal(); Assert.AreEqual(source1, selectedSource); // Change the ESI vs.ErrorsListBoxInternal.SelectedItem = newVsi2; // First click with new ESI vs.ExecuteClickInternal(); Assert.AreEqual(null, selectedSource); }); EnqueueTestComplete(); }
public void ErrorUpdates() { ValidationSummaryTestPage page = new ValidationSummaryTestPage(); this.TestPanel.Children.Add(page); ValidationSummary vs = page.validationSummary; this.EnqueueConditional(() => { return(page.validationSummary.Initialized); }); this.EnqueueCallback(() => { Assert.IsNotNull(vs); BindingExpression be = page.nameTextBox.GetBindingExpression(TextBox.TextProperty); Assert.IsNotNull(be); // Cause a validation error via the input control page.nameTextBox.Text = "ABCDEFG!@#$"; ReadOnlyObservableCollection <ValidationError> errors = Validation.GetErrors(page.nameTextBox); Assert.AreEqual(1, errors.Count); Assert.AreEqual(1, vs.Errors.Count); Assert.AreEqual(errors[0].Exception.Message, vs.Errors[0].Message); Assert.IsTrue(vs.HasErrors); // Fix the error page.nameTextBox.Text = "abcd"; errors = Validation.GetErrors(page.nameTextBox); Assert.AreEqual(0, errors.Count); Assert.AreEqual(0, vs.Errors.Count); Assert.IsFalse(vs.HasErrors); // Check ValidationErrorCollection page.nameTextBox.Text = "ABCDEFG!@#$"; ValidationSummaryItem newError = new ValidationSummaryItem(null, "new error", ValidationSummaryItemType.ObjectError, null, null); ValidationItemCollection errorCollection = vs.Errors as ValidationItemCollection; System.Collections.Specialized.NotifyCollectionChangedEventHandler handler = new System.Collections.Specialized.NotifyCollectionChangedEventHandler( delegate(object o, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { Assert.AreEqual(newError, e.NewItems[0], "new error does not match"); }); errorCollection.CollectionChanged += handler; Assert.AreEqual(1, errorCollection.Count); errorCollection.Add(newError); errorCollection.CollectionChanged -= handler; Assert.AreEqual(2, errorCollection.Count); errorCollection.ClearErrors(ValidationSummaryItemType.ObjectError); Assert.AreEqual(1, errorCollection.Count); }); EnqueueTestComplete(); }
void insrt_isUsernamesExistCompleted(object sender, isUsernamesExistCompletedEventArgs e) { UsersNotExist = e.Result; if (UsersNotExist == "") { vldSum.Errors.Clear(); bm.ValidateAll(); } else { ValidationSummaryItem vsiUE = new ValidationSummaryItem("Users doesn't exist:" + UsersNotExist); vldSum.Errors.Clear(); bm.ValidateAll(); vldSum.Errors.Add(vsiUE); } }
public void FocusingInvalidControl() { ValidationSummaryTestPage page = new ValidationSummaryTestPage(); this.TestPanel.Children.Add(page); ValidationSummary vs = page.validationSummary; this.EnqueueConditional(() => { return(page.validationSummary.Initialized); }); this.EnqueueCallback(() => { page.nameTextBox.Text = "ABCDEFG!@#$"; Assert.AreEqual(1, vs.Errors.Count); bool clicked = false; // Setup the delegate to capture the event vs.ErrorsListBoxInternal.SelectedIndex = 0; FocusingInvalidControlEventArgs eArgs = null; ValidationSummaryItem vsi = null; vs.FocusingInvalidControl += new EventHandler <FocusingInvalidControlEventArgs>(delegate(object o, FocusingInvalidControlEventArgs e) { clicked = true; eArgs = e; vsi = e.Item; }); // Simulate a click on the first item vs.ExecuteClickInternal(); Assert.IsTrue(clicked); Assert.IsNotNull(eArgs); Assert.IsNotNull(vsi); Assert.AreEqual("Name", vsi.Sources[0].PropertyName); // Set the flag to false, clicks should no longer occur, as it only affects focus vs.FocusControlsOnClick = false; clicked = false; eArgs = null; vs.ExecuteClickInternal(); Assert.IsFalse(clicked); Assert.IsNull(eArgs); }); EnqueueTestComplete(); }
public void ErrorClickedSelectedItem() { ValidationSummaryTestPage page = new ValidationSummaryTestPage(); this.TestPanel.Children.Add(page); ValidationSummary vs = page.validationSummary; this.EnqueueConditional(() => { return(page.validationSummary.Initialized); }); this.EnqueueCallback(() => { page.nameTextBox.Text = "ABCDEFG!@#$"; Assert.AreEqual(1, vs.Errors.Count); ValidationSummaryItem newVsi = new ValidationSummaryItem("test error", null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource("property name", page.nameTextBox), this); vs.Errors.Add(newVsi); bool clicked = false; // Setup the delegate to capture the event vs.ErrorsListBoxInternal.SelectedItem = newVsi; FocusingInvalidControlEventArgs eArgs = null; ValidationSummaryItem vsi = null; vs.FocusingInvalidControl += new EventHandler <FocusingInvalidControlEventArgs>(delegate(object o, FocusingInvalidControlEventArgs e) { clicked = true; eArgs = e; vsi = e.Item; }); // Simulate a click on the first item vs.ExecuteClickInternal(); Assert.IsTrue(clicked); Assert.IsNotNull(vsi); Assert.AreEqual("test error", vsi.Message); Assert.AreEqual(ValidationSummaryItemType.ObjectError, vsi.ItemType); Assert.AreEqual(this, vsi.Context); Assert.AreEqual(page.nameTextBox, vsi.Sources[0].Control); Assert.AreEqual("property name", vsi.Sources[0].PropertyName); }); EnqueueTestComplete(); }
public void DisplayedErrors_ItemTypeUpdates() { ValidationSummaryTestPage page = new ValidationSummaryTestPage(); this.TestPanel.Children.Add(page); ValidationSummary vs = page.validationSummary; this.EnqueueConditional(() => { return(page.validationSummary.Initialized); }); this.EnqueueCallback(() => { Assert.IsNotNull(vs); BindingExpression be = page.nameTextBox.GetBindingExpression(TextBox.TextProperty); Assert.IsNotNull(be); // Cause a validation error via the input control page.nameTextBox.Text = "ABCDEFG!@#$"; Assert.AreEqual(1, vs.DisplayedErrors.Count); Assert.IsTrue(vs.HasErrors); Assert.IsTrue(vs.HasDisplayedErrors); // Add object error ValidationSummaryItem newError = new ValidationSummaryItem(null, "new error", ValidationSummaryItemType.ObjectError, null, null); vs.Errors.Add(newError); Assert.AreEqual(2, vs.DisplayedErrors.Count); Assert.IsTrue(vs.HasErrors); Assert.IsTrue(vs.HasDisplayedErrors); // Change filter vs.Filter = ValidationSummaryFilters.ObjectErrors; Assert.AreEqual(1, vs.DisplayedErrors.Count); Assert.IsTrue(vs.HasErrors); Assert.IsTrue(vs.HasDisplayedErrors); // Change ItemType so that there's no object errors newError.ItemType = ValidationSummaryItemType.PropertyError; Assert.AreEqual(0, vs.DisplayedErrors.Count); Assert.IsTrue(vs.HasErrors); Assert.IsFalse(vs.HasDisplayedErrors); }); EnqueueTestComplete(); }
public void SelectionChanged() { ValidationSummaryTestPage page = new ValidationSummaryTestPage(); this.TestPanel.Children.Add(page); ValidationSummary vs = page.validationSummary; this.EnqueueConditional(() => { return(page.validationSummary.Initialized); }); this.EnqueueCallback(() => { page.nameTextBox.Text = "ABCDEFG!@#$"; Assert.AreEqual(1, vs.Errors.Count); ValidationSummaryItem newEsi = new ValidationSummaryItem(null, "test error", ValidationSummaryItemType.ObjectError, null, null); ValidationSummaryItemSource source1 = new ValidationSummaryItemSource("prop1", page.nameTextBox); newEsi.Sources.Add(source1); ValidationSummaryItemSource source2 = new ValidationSummaryItemSource("prop2", page.emailTextBox); newEsi.Sources.Add(source2); vs.Errors.Add(newEsi); ValidationSummaryItem newEsi2 = new ValidationSummaryItem(null, "test error", ValidationSummaryItemType.ObjectError, null, null); vs.Errors.Add(newEsi2); // Setup the delegate to capture the event bool selectionChanged = false; vs.SelectionChanged += new EventHandler <SelectionChangedEventArgs>(delegate(object o, SelectionChangedEventArgs e) { selectionChanged = true; }); vs.ErrorsListBoxInternal.SelectedItem = newEsi; vs.ErrorsListBoxInternal.SelectedItem = newEsi2; // First click vs.ExecuteClickInternal(); Assert.IsTrue(selectionChanged); }); EnqueueTestComplete(); }
private void Target_BindingValidationError(object sender, ValidationErrorEventArgs e) { FrameworkElement inputControl = e.OriginalSource as FrameworkElement; if (e != null && e.Error != null && e.Error.ErrorContent != null && inputControl != null) { string message = e.Error.ErrorContent.ToString(); #if NETSTANDARD string key = String.IsNullOrEmpty(inputControl.Name) ? inputControl.GetHashCode().ToString(CultureInfo.InvariantCulture) : inputControl.Name; #else string key = String.IsNullOrEmpty(inputControl.Name) ? inputControl.GetHashCode().ToString(null, CultureInfo.InvariantCulture) : inputControl.Name; #endif key += message; if (this._validationSummaryItemDictionary.ContainsKey(key)) { ValidationSummaryItem existingError = this._validationSummaryItemDictionary[key]; this._errors.Remove(existingError); this._validationSummaryItemDictionary.Remove(key); } if (e.Action == ValidationErrorEventAction.Added) { if (GetShowErrorsInSummary(inputControl)) { // New error string propertyName = null; object entity; BindingExpression be; ValidationMetadata vmd = ValidationHelper.ParseMetadata(inputControl, false, out entity, out be); if (vmd != null) { propertyName = vmd.Caption; } ValidationSummaryItem vsi = new ValidationSummaryItem(message, propertyName, ValidationSummaryItemType.PropertyError, new ValidationSummaryItemSource(propertyName, inputControl as Control), null); this._errors.Add(vsi); this._validationSummaryItemDictionary[key] = vsi; } } } }
void target_BindingValidationError(object sender, ValidationErrorEventArgs e) { FrameworkElement inputControl = e.OriginalSource as FrameworkElement; if (((e != null) && (e.Error != null)) && ((e.Error.ErrorContent != null) && (inputControl != null))) { string message = e.Error.ErrorContent.ToString(); string goodkey = inputControl.GetHashCode().ToString(CultureInfo.InvariantCulture); goodkey = goodkey + message; if (e.Action == ValidationErrorEventAction.Added && ValidationSummary.GetShowErrorsInSummary(inputControl)) { string messageHeader = null; ValidationSummaryItem item = new ValidationSummaryItem(message, messageHeader, ValidationSummaryItemType.PropertyError, new ValidationSummaryItemSource(messageHeader, inputControl as Control), null); _validationErrors[goodkey] = item; } else { _validationErrors.Remove(goodkey); } } UpdateDisplayedErrors(); }
// // Summary: // Initializes a new instance of the System.Windows.Controls.FocusingInvalidControlEventArgs // class. // // Parameters: // item: // The error that is selected in the System.Windows.Controls.ValidationSummary list. // // target: // The control/property pair that will receive focus. public FocusingInvalidControlEventArgs(ValidationSummaryItem item, ValidationSummaryItemSource target) { }
/// <summary> /// Initializes a new instance of the ValidationSummaryItemEventArgs class. /// </summary> /// <param name="item">The selected ValidationSummaryItem</param> /// <param name="target">The target is the ValidationSummaryItemSource that will be focused.</param> public FocusingInvalidControlEventArgs(ValidationSummaryItem item, ValidationSummaryItemSource target) { this.Handled = false; this.Item = item; this.Target = target; }
public void ErrorInfoSorting() { ValidationSummaryItem ei1 = new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, null, null); ValidationSummaryTestPage page = new ValidationSummaryTestPage(); // 1. Compare ErrorInfo reference Assert.AreEqual <int>(0, ValidationSummary.CompareValidationSummaryItems(null, null), "1. null null"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems(null, ei1), "1. null ei1"); Assert.AreEqual <int>(1, ValidationSummary.CompareValidationSummaryItems(ei1, null), "1. ei1 null"); // 2. Compare ErrorType Assert.AreEqual <int>(0, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, null, null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, null, null)), "2. None None"); Assert.AreEqual <int>(0, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, null, null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, null, null)), "2. EntityError EntityError"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, null, null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.PropertyError, null, null)), "2. EntityError PropertyError"); Assert.AreEqual <int>(1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.PropertyError, null, null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, null, null)), "2. PropertyError EntityError"); // 3. Compare Control Assert.AreEqual <int>(0, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, null, null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, null, null)), "3. null null"); Assert.AreEqual <int>(0, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "3. tb1 tb1"); Assert.AreEqual <int>(1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, null), null)), "3. tb1 null"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, null), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "3. null tb1"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb2), null)), "3. tb1 tb2"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb2), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb4), null)), "3. tb2 tb4 increasing tabindex"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb6), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb2), null)), "3. tb6 tb2 decreasing tabindex"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb3), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb5), null)), "3. tb3 tb5 increasing tabindex"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb3), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb7), null)), "3. tb3 tb7 Name compare"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb7), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb6), null)), "3. tb7 tb6 ordering compare"); TextBox tbNoName = new TextBox(); tbNoName.TabIndex = 2; Assert.AreEqual <int>(1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb7), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, tbNoName), null)), "3. tb7 tbNoName Name compare"); // 4. MessageHeader compare Assert.AreEqual <int>(0, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "4. null null"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem("", null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "4. null ''"); Assert.AreEqual <int>(1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem("blah", null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "4. blah null"); // 5. ErrorMessage Assert.AreEqual <int>(0, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "5. null null"); Assert.AreEqual <int>(1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem("a", null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "5. a null"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem(null, null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem("a", null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "5. null a"); Assert.AreEqual <int>(1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem("b", null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem("a", null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "5. b a"); Assert.AreEqual <int>(-1, ValidationSummary.CompareValidationSummaryItems( new ValidationSummaryItem("a", null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null), new ValidationSummaryItem("b", null, ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource(null, page.tb1), null)), "5. a b"); }