15 changed files with 366 additions and 74 deletions
@ -0,0 +1,31 @@ |
|||
// -----------------------------------------------------------------------
|
|||
// <copyright file="SelectingItemsControlTests.cs" company="Steven Kirk">
|
|||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
|||
// </copyright>
|
|||
// -----------------------------------------------------------------------
|
|||
|
|||
namespace Perspex.Controls.UnitTests |
|||
{ |
|||
using Perspex.Controls.Primitives; |
|||
using Perspex.Input; |
|||
using Perspex.Interactivity; |
|||
using Xunit; |
|||
|
|||
public class SelectingItemsControlTests |
|||
{ |
|||
[Fact] |
|||
public void PointerPressed_Event_Should_Be_Handled() |
|||
{ |
|||
var target = new SelectingItemsControl(); |
|||
|
|||
var e = new PointerPressEventArgs |
|||
{ |
|||
RoutedEvent = InputElement.PointerPressedEvent |
|||
}; |
|||
|
|||
target.RaiseEvent(e); |
|||
|
|||
Assert.True(e.Handled); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,161 @@ |
|||
// -----------------------------------------------------------------------
|
|||
// <copyright file="TabControlTests.cs" company="Steven Kirk">
|
|||
// Copyright 2015 MIT Licence. See licence.md for more information.
|
|||
// </copyright>
|
|||
// -----------------------------------------------------------------------
|
|||
|
|||
namespace Perspex.Controls.UnitTests |
|||
{ |
|||
using System.Linq; |
|||
using Perspex.Controls.Presenters; |
|||
using Perspex.Controls.Primitives; |
|||
using Perspex.LogicalTree; |
|||
using Perspex.Styling; |
|||
using Xunit; |
|||
|
|||
public class TabControlTests |
|||
{ |
|||
[Fact] |
|||
public void First_Tab_Should_Be_Selected_By_Default() |
|||
{ |
|||
var target = new TabControl |
|||
{ |
|||
Template = ControlTemplate.Create<TabControl>(this.CreateTabControlTemplate), |
|||
Items = new[] |
|||
{ |
|||
new TabItem |
|||
{ |
|||
Id = "first" |
|||
}, |
|||
new TabItem |
|||
{ |
|||
Id = "second" |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
target.ApplyTemplate(); |
|||
|
|||
Assert.NotNull(target.SelectedTab); |
|||
Assert.Equal(target.SelectedTab, target.SelectedItem); |
|||
} |
|||
|
|||
[Fact] |
|||
public void First_Tab_Content_Should_Be_Displayed_By_Default() |
|||
{ |
|||
var target = new TabControl |
|||
{ |
|||
Template = ControlTemplate.Create<TabControl>(this.CreateTabControlTemplate), |
|||
Items = new[] |
|||
{ |
|||
new TabItem |
|||
{ |
|||
Content = new TextBlock(), |
|||
}, |
|||
new TabItem |
|||
{ |
|||
Content = new Border(), |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
target.ApplyTemplate(); |
|||
|
|||
Assert.IsType<TextBlock>(target.SelectedContent); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Setting_SelectedItem_Should_Set_SelectedTab() |
|||
{ |
|||
var target = new TabControl |
|||
{ |
|||
Template = ControlTemplate.Create<TabControl>(this.CreateTabControlTemplate), |
|||
Items = new[] |
|||
{ |
|||
new TabItem |
|||
{ |
|||
Id = "first" |
|||
}, |
|||
new TabItem |
|||
{ |
|||
Id = "second" |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
target.ApplyTemplate(); |
|||
target.SelectedItem = target.Items.Cast<TabItem>().ElementAt(1); |
|||
|
|||
Assert.Same(target.SelectedTab, target.SelectedItem); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Setting_SelectedTab_Should_Set_SelectedItem() |
|||
{ |
|||
var target = new TabControl |
|||
{ |
|||
Template = ControlTemplate.Create<TabControl>(this.CreateTabControlTemplate), |
|||
Items = new[] |
|||
{ |
|||
new TabItem |
|||
{ |
|||
Id = "first" |
|||
}, |
|||
new TabItem |
|||
{ |
|||
Id = "second" |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
target.ApplyTemplate(); |
|||
target.SelectedTab = target.Items.Cast<TabItem>().ElementAt(1); |
|||
|
|||
Assert.Same(target.SelectedItem, target.SelectedTab); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Logical_Children_Should_Be_TabItems() |
|||
{ |
|||
var target = new TabControl |
|||
{ |
|||
Template = ControlTemplate.Create<TabControl>(this.CreateTabControlTemplate), |
|||
Items = new[] { "Foo", "Bar" }, |
|||
}; |
|||
|
|||
target.ApplyTemplate(); |
|||
|
|||
Assert.Equal(2, target.GetLogicalChildren().Count()); |
|||
} |
|||
|
|||
private Control CreateTabControlTemplate(TabControl parent) |
|||
{ |
|||
return new StackPanel |
|||
{ |
|||
Children = new Controls |
|||
{ |
|||
new TabStrip |
|||
{ |
|||
Id = "tabStrip", |
|||
Template = ControlTemplate.Create<TabStrip>(this.CreateTabStripTemplate), |
|||
[~TabStrip.ItemsProperty] = parent[~TabControl.ItemsProperty], |
|||
[~~TabStrip.SelectedTabProperty] = parent[~~TabControl.SelectedTabProperty] |
|||
}, |
|||
new ContentPresenter |
|||
{ |
|||
Id = "contentPresenter", |
|||
} |
|||
} |
|||
}; |
|||
} |
|||
|
|||
private Control CreateTabStripTemplate(TabStrip parent) |
|||
{ |
|||
return new ItemsPresenter |
|||
{ |
|||
Id = "itemsPresenter", |
|||
[~ItemsPresenter.ItemsProperty] = parent[~TabStrip.ItemsProperty], |
|||
}; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,102 @@ |
|||
// -----------------------------------------------------------------------
|
|||
// <copyright file="TabStripTests.cs" company="Steven Kirk">
|
|||
// Copyright 2015 MIT Licence. See licence.md for more information.
|
|||
// </copyright>
|
|||
// -----------------------------------------------------------------------
|
|||
|
|||
namespace Perspex.Controls.UnitTests |
|||
{ |
|||
using System.Linq; |
|||
using Perspex.Controls.Presenters; |
|||
using Perspex.Controls.Primitives; |
|||
using Perspex.LogicalTree; |
|||
using Perspex.Styling; |
|||
using Xunit; |
|||
|
|||
public class TabStripTests |
|||
{ |
|||
[Fact] |
|||
public void First_Tab_Should_Be_Selected_By_Default() |
|||
{ |
|||
var target = new TabStrip |
|||
{ |
|||
Template = ControlTemplate.Create<TabStrip>(this.CreateTabStripTemplate), |
|||
Items = new[] |
|||
{ |
|||
new TabItem |
|||
{ |
|||
Id = "first" |
|||
}, |
|||
new TabItem |
|||
{ |
|||
Id = "second" |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
target.ApplyTemplate(); |
|||
|
|||
Assert.Equal(target.Items.Cast<TabItem>().First(), target.SelectedItem); |
|||
Assert.Equal(target.Items.Cast<TabItem>().First(), target.SelectedTab); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Setting_SelectedItem_Should_Set_SelectedTab() |
|||
{ |
|||
var target = new TabStrip |
|||
{ |
|||
Template = ControlTemplate.Create<TabStrip>(this.CreateTabStripTemplate), |
|||
Items = new[] |
|||
{ |
|||
new TabItem |
|||
{ |
|||
Id = "first" |
|||
}, |
|||
new TabItem |
|||
{ |
|||
Id = "second" |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
target.ApplyTemplate(); |
|||
target.SelectedItem = target.Items.Cast<TabItem>().ElementAt(1); |
|||
|
|||
Assert.Same(target.SelectedTab, target.SelectedItem); |
|||
} |
|||
|
|||
[Fact] |
|||
public void Setting_SelectedTab_Should_Set_SelectedItem() |
|||
{ |
|||
var target = new TabStrip |
|||
{ |
|||
Template = ControlTemplate.Create<TabStrip>(this.CreateTabStripTemplate), |
|||
Items = new[] |
|||
{ |
|||
new TabItem |
|||
{ |
|||
Id = "first" |
|||
}, |
|||
new TabItem |
|||
{ |
|||
Id = "second" |
|||
}, |
|||
} |
|||
}; |
|||
|
|||
target.ApplyTemplate(); |
|||
target.SelectedTab = target.Items.Cast<TabItem>().ElementAt(1); |
|||
|
|||
Assert.Same(target.SelectedItem, target.SelectedTab); |
|||
} |
|||
|
|||
private Control CreateTabStripTemplate(TabStrip parent) |
|||
{ |
|||
return new ItemsPresenter |
|||
{ |
|||
Id = "itemsPresenter", |
|||
[~ItemsPresenter.ItemsProperty] = parent[~TabStrip.ItemsProperty], |
|||
}; |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue