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