Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

Commit

Permalink
Prep Page for removal of InternalsVisibleTo (#150)
Browse files Browse the repository at this point in the history
  • Loading branch information
hartez authored and rmarinho committed Jun 16, 2016
1 parent 04f7bd2 commit d5be2f0
Show file tree
Hide file tree
Showing 90 changed files with 793 additions and 419 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public NavigationStackTests ()
}

if (navPage != null) {
navPage.Navigation.RemovePage ((Page) navPage.InternalChildren[navPage.InternalChildren.Count - 2]);
navPage.Navigation.RemovePage ((Page)((IPageController)navPage).InternalChildren[((IPageController)navPage).InternalChildren.Count - 2]);
}
};

Expand Down
10 changes: 5 additions & 5 deletions Xamarin.Forms.Core.UnitTests/ContentViewUnitTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ public void NullTemplateDirectlyHosts ()
contentView.Content = child;
contentView.Platform = platform;

Assert.AreEqual (child, contentView.LogicalChildren[0]);
Assert.AreEqual (child, ((IElementController)contentView).LogicalChildren[0]);
}

class SimpleTemplate : StackLayout
Expand All @@ -303,7 +303,7 @@ public void TemplateInflates ()
contentView.ControlTemplate = new ControlTemplate (typeof (SimpleTemplate));
contentView.Platform = platform;

Assert.That (contentView.LogicalChildren[0], Is.TypeOf<SimpleTemplate> ());
Assert.That (((IElementController)contentView).LogicalChildren[0], Is.TypeOf<SimpleTemplate> ());
}

[Test]
Expand All @@ -318,7 +318,7 @@ public void PacksContent ()
contentView.Content = child;
contentView.Platform = platform;

Assume.That (contentView.LogicalChildren[0], Is.TypeOf<SimpleTemplate> ());
Assume.That (((IElementController)contentView).LogicalChildren[0], Is.TypeOf<SimpleTemplate> ());
Assert.That (contentView.Descendants (), Contains.Item (child));
}

Expand All @@ -337,8 +337,8 @@ public void DoesNotInheritBindingContextToTemplate ()
var bc = "Test";
contentView.BindingContext = bc;

Assert.AreNotEqual (bc, contentView.LogicalChildren[0].BindingContext);
Assert.IsNull (contentView.LogicalChildren[0].BindingContext);
Assert.AreNotEqual (bc, ((IElementController)contentView).LogicalChildren[0].BindingContext);
Assert.IsNull (((IElementController)contentView).LogicalChildren[0].BindingContext);
}

[Test]
Expand Down
20 changes: 16 additions & 4 deletions Xamarin.Forms.Core.UnitTests/ControlTemplateTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,11 @@ public void ResettingControlTemplateNullsPresenterContent ()

var label = new Label ();
testView.Content = label;
var originalPresenter = (ContentPresenter)testView.LogicalChildren[0].LogicalChildren[0];

var child1 = ((IElementController)testView).LogicalChildren[0];
var child2 = ((IElementController)child1).LogicalChildren[0];

var originalPresenter = (ContentPresenter)child2;

Assert.AreEqual (label, originalPresenter.Content);

Expand All @@ -83,7 +87,11 @@ public void ResettingControlTemplateNullsPresenterContent ()
public void NestedTemplateBindings ()
{
var testView = new TestView ();
var label = (Label)testView.LogicalChildren[0].LogicalChildren[0];

var child1 = ((IElementController)testView).LogicalChildren[0];
var child2 = ((IElementController)child1).LogicalChildren[0];

var label = (Label)child2;

testView.Platform = new UnitPlatform ();
Assert.IsNull (label.Text);
Expand All @@ -101,7 +109,11 @@ public void ParentControlTemplateDoesNotClearChildTemplate ()

parentView.Content = childView;
childView.Content = new Button ();
var childPresenter = (ContentPresenter)childView.LogicalChildren[0].LogicalChildren[1];

var child1 = ((IElementController)childView).LogicalChildren[0];
var child2 = ((IElementController)child1).LogicalChildren[1];

var childPresenter = (ContentPresenter)child2;

parentView.ControlTemplate = new ControlTemplate (typeof (ContentControl));
Assert.IsNotNull (childPresenter.Content);
Expand Down Expand Up @@ -171,7 +183,7 @@ public void DoubleTwoWayBindingWorks ()
page.ControlTemplate = new ControlTemplate (typeof (TestContent));
page.SetBinding (TestPage.NameProperty, "Name");

var entry = ((ContentView)page.LogicalChildren[0]).Content as Entry;
var entry = ((ContentView)((IElementController)page).LogicalChildren[0]).Content as Entry;
((IElementController)entry).SetValueFromRenderer (Entry.TextProperty, "Bar");
viewModel.Name = "Raz";

Expand Down
2 changes: 1 addition & 1 deletion Xamarin.Forms.Core.UnitTests/ElementTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public IList<Element> Children
get { return internalChildren; }
}

internal override ReadOnlyCollection<Element> LogicalChildren
internal override ReadOnlyCollection<Element> LogicalChildrenInternal
{
get { return new ReadOnlyCollection<Element> (internalChildren); }
}
Expand Down
2 changes: 1 addition & 1 deletion Xamarin.Forms.Core.UnitTests/GridTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -771,7 +771,7 @@ public void Remove ()
};

layout.Children.Remove (labela0);
Assert.False (layout.LogicalChildren.Contains (labela0));
Assert.False (((IElementController)layout).LogicalChildren.Contains (labela0));
}

[Test]
Expand Down
28 changes: 14 additions & 14 deletions Xamarin.Forms.Core.UnitTests/GroupViewUnitTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ internal class NaiveLayout : Layout<View>
{
protected override void LayoutChildren (double x, double y, double width, double height)
{
foreach (var child in LogicalChildren.Cast<View>()) {
foreach (var child in ((IElementController)this).LogicalChildren.Cast<View>()) {
var result = new Rectangle (x, y, 0, 0);
var request = child.GetSizeRequest (double.PositiveInfinity, double.PositiveInfinity);
result.Width = request.Request.Width;
Expand Down Expand Up @@ -42,11 +42,11 @@ public void TestRaiseChild ()

view.RaiseChild (child1);

Assert.AreEqual (child1, view.LogicalChildren [2]);
Assert.AreEqual (child1, ((IElementController)view).LogicalChildren [2]);
Assert.True (reordered);

view.RaiseChild (child2);
Assert.AreEqual (child2, view.LogicalChildren [2]);
Assert.AreEqual (child2, ((IElementController)view).LogicalChildren [2]);
}

[Test]
Expand Down Expand Up @@ -87,11 +87,11 @@ public void TestLowerChild ()

view.LowerChild (child3);

Assert.AreEqual (child3, view.LogicalChildren [0]);
Assert.AreEqual (child3, ((IElementController)view).LogicalChildren [0]);
Assert.True (reordered);

view.LowerChild (child2);
Assert.AreEqual (child2, view.LogicalChildren [0]);
Assert.AreEqual (child2, ((IElementController)view).LogicalChildren [0]);
}

[Test]
Expand Down Expand Up @@ -126,7 +126,7 @@ public void TestAdd ()
view.Children.Add (child1);

Assert.True (added);
Assert.AreEqual (child1, view.LogicalChildren [0]);
Assert.AreEqual (child1, ((IElementController)view).LogicalChildren [0]);
}

[Test]
Expand All @@ -142,7 +142,7 @@ public void TestDoubleAdd ()
view.Children.Add (child1);

Assert.False (added);
Assert.AreEqual (child1, view.LogicalChildren [0]);
Assert.AreEqual (child1, ((IElementController)view).LogicalChildren [0]);
}

[Test]
Expand All @@ -159,7 +159,7 @@ public void TestRemove ()
view.Children.Remove (child1);

Assert.True (removed);
Assert.False (view.LogicalChildren.Any ());
Assert.False (((IElementController)view).LogicalChildren.Any ());
}

[Test]
Expand All @@ -177,7 +177,7 @@ public void TestGenericEnumerator ()
view.Children.Add (child);

int i = 0;
foreach (var child in view.LogicalChildren) {
foreach (var child in ((IElementController)view).LogicalChildren) {
Assert.AreEqual (children[i], child);
i++;
}
Expand All @@ -198,7 +198,7 @@ public void TestEnumerator ()
view.Children.Add (child);

int i = 0;
var enumerator = (view.LogicalChildren as IEnumerable).GetEnumerator ();
var enumerator = (((IElementController)view).LogicalChildren as IEnumerable).GetEnumerator ();
while (enumerator.MoveNext ()) {
Assert.AreEqual (children [i], enumerator.Current as View);
i++;
Expand All @@ -216,10 +216,10 @@ public void TestInitializerSyntax ()
}
};

Assert.AreEqual (2, group.LogicalChildren.Count);
Assert.IsTrue (group.LogicalChildren.Contains (view1));
Assert.IsTrue (group.LogicalChildren.Contains (view2));
Assert.AreEqual (view1, group.LogicalChildren[0]);
Assert.AreEqual (2, ((IElementController)group).LogicalChildren.Count);
Assert.IsTrue (((IElementController)group).LogicalChildren.Contains (view1));
Assert.IsTrue (((IElementController)group).LogicalChildren.Contains (view2));
Assert.AreEqual (view1, ((IElementController)group).LogicalChildren[0]);
}

[Test]
Expand Down
4 changes: 2 additions & 2 deletions Xamarin.Forms.Core.UnitTests/MultiPageTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public void TestSetChildren ()
container.Children.Add (CreateContainedPage());

Assert.AreEqual (2, childCount);
Assert.AreEqual (2, page.LogicalChildren.Count);
Assert.AreEqual (2, ((IElementController)page).LogicalChildren.Count);
Assert.AreEqual (2, pagesAdded);
}

Expand All @@ -71,7 +71,7 @@ public void TestOverwriteChildren()

Assert.AreEqual (2, removeCount);
Assert.AreEqual (2, childCount);
Assert.AreEqual (2, page.LogicalChildren.Count);
Assert.AreEqual (2, ((IElementController)page).LogicalChildren.Count);
}

[Test]
Expand Down
4 changes: 3 additions & 1 deletion Xamarin.Forms.Core.UnitTests/NavigationUnitTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,10 @@ public void ConstructWithRoot ()
var root = new ContentPage ();
var nav = new NavigationPage (root);

Assert.AreEqual (root, nav.LogicalChildren[0]);

Assert.AreEqual (1, ((INavigationPageController)nav).StackDepth);
Assert.AreEqual (root, ((IElementController)nav).LogicalChildren[0]);

}

[Test]
Expand Down
2 changes: 1 addition & 1 deletion Xamarin.Forms.Core.UnitTests/NotifiedPropertiesTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ public override string DebugName {
new PropertyTestCase<Page, Color> ("BackgroundColor", v => v.BackgroundColor, (v, o) => v.BackgroundColor = o, () => default(Color), new Color (0, 1, 0)),
new PropertyTestCase<Page, string> ("Title", v => v.Title, (v, o) => v.Title = o, () => null, "Foo"),
new PropertyTestCase<Page, bool> ("IsBusy", v => v.IsBusy, (v, o) => v.IsBusy = o, () => false, true),
new PropertyTestCase<Page, bool> ("IgnoresContainerArea", v => v.IgnoresContainerArea, (v, o) => v.IgnoresContainerArea = o, () => false, true),
new PropertyTestCase<Page, bool> ("IgnoresContainerArea", v => ((IPageController)v).IgnoresContainerArea, (v, o) => ((IPageController)v).IgnoresContainerArea = o, () => false, true),
new PropertyTestCase<Page, Thickness> ("Padding", v => v.Padding, (v, o) => v.Padding = o, () => default(Thickness), new Thickness (12)),
new PropertyTestCase<Picker, string> ("Title", v=>v.Title, (v, o) =>v.Title = o, () => null, "FooBar"),
new PropertyTestCase<Picker, int> ("SelectedIndex", v=>v.SelectedIndex, (v, o) =>v.SelectedIndex = o, () => -1, 2, ()=>new Picker{Items= {"Foo", "Bar", "Baz", "Qux"}}),
Expand Down
31 changes: 15 additions & 16 deletions Xamarin.Forms.Core.UnitTests/PageTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ public void TestConstructor ()
var child = new Label ();
Page root = new ContentPage {Content = child};

Assert.AreEqual (root.LogicalChildren.Count, 1);
Assert.AreSame (root.LogicalChildren.First (), child);
Assert.AreEqual (((IElementController)root).LogicalChildren.Count, 1);
Assert.AreSame (((IElementController)root).LogicalChildren.First (), child);
}

[Test]
Expand Down Expand Up @@ -257,8 +257,7 @@ public void TestLayoutWithContainerArea ()
page.Layout (new Rectangle (0, 0, 800, 800));

Assert.AreEqual (new Rectangle (0, 0, 800, 800), child.Bounds);

page.ContainerArea = new Rectangle (10, 10, 30, 30);
((IPageController)page).ContainerArea = new Rectangle (10, 10, 30, 30);

Assert.AreEqual (new Rectangle (10, 10, 30, 30), child.Bounds);

Expand Down Expand Up @@ -315,7 +314,7 @@ public void BusySentWhenBusyPageAppears()

Assert.That (sent, Is.False, "Busy message sent while not visible");

page.SendAppearing();
((IPageController)page).SendAppearing();

Assert.That (sent, Is.True, "Busy message not sent when visible");
}
Expand All @@ -324,15 +323,15 @@ public void BusySentWhenBusyPageAppears()
public void BusySentWhenBusyPageDisappears()
{
var page = new ContentPage { IsBusy = true };
page.SendAppearing();
((IPageController)page).SendAppearing();

var sent = false;
MessagingCenter.Subscribe<Page, bool> (this, Page.BusySetSignalName, (p, b) => {
Assert.That (b, Is.False);
sent = true;
});

page.SendDisappearing();
((IPageController)page).SendDisappearing();

Assert.That (sent, Is.True, "Busy message not sent when visible");
}
Expand All @@ -344,7 +343,7 @@ public void BusySentWhenVisiblePageSetToBusy()
MessagingCenter.Subscribe<Page, bool> (this, Page.BusySetSignalName, (p, b) => sent = true);

var page = new ContentPage();
page.SendAppearing();
((IPageController)page).SendAppearing();

Assert.That (sent, Is.False, "Busy message sent appearing while not busy");

Expand Down Expand Up @@ -408,7 +407,7 @@ public void SendAppearing ()
bool sent = false;
page.Appearing += (sender, args) => sent = true;

page.SendAppearing ();
((IPageController)page).SendAppearing ();

Assert.True (sent);
}
Expand All @@ -418,12 +417,12 @@ public void SendDisappearing ()
{
var page = new ContentPage ();

page.SendAppearing ();
((IPageController)page).SendAppearing ();

bool sent = false;
page.Disappearing += (sender, args) => sent = true;

page.SendDisappearing ();
((IPageController)page).SendDisappearing ();

Assert.True (sent);
}
Expand All @@ -436,8 +435,8 @@ public void SendAppearingDoesntGetCalledMultipleTimes ()
int countAppearing = 0;
page.Appearing += (sender, args) => countAppearing++;

page.SendAppearing ();
page.SendAppearing ();
((IPageController)page).SendAppearing ();
((IPageController)page).SendAppearing ();

Assert.That (countAppearing, Is.EqualTo(1));
}
Expand Down Expand Up @@ -465,7 +464,7 @@ public void SendAppearingToChildrenAfter ()
};
navPage.Appearing += (sender, e) => sentNav = true;

navPage.SendAppearing ();
((IPageController)navPage).SendAppearing ();

Assert.True (sentNav);
Assert.True (sent);
Expand All @@ -478,7 +477,7 @@ public void SendDisappearingToChildrenPageFirst ()
var page = new ContentPage ();

var navPage = new NavigationPage (page);
navPage.SendAppearing ();
((IPageController)navPage).SendAppearing ();

bool sentNav = false;
bool sent = false;
Expand All @@ -489,7 +488,7 @@ public void SendDisappearingToChildrenPageFirst ()
if (sent)
sentNav = true;
};
navPage.SendDisappearing ();
((IPageController)navPage).SendDisappearing ();

Assert.True (sentNav);
Assert.True (sent);
Expand Down
4 changes: 2 additions & 2 deletions Xamarin.Forms.Core/AbsoluteLayout.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public static void SetLayoutFlags(BindableObject bindable, AbsoluteLayoutFlags f

protected override void LayoutChildren(double x, double y, double width, double height)
{
foreach (View child in LogicalChildren)
foreach (View child in LogicalChildrenInternal)
{
Rectangle rect = ComputeLayoutForRegion(child, new Size(width, height));
rect.X += x;
Expand All @@ -79,7 +79,7 @@ protected override SizeRequest OnSizeRequest(double widthConstraint, double heig
{
var bestFitSize = new Size();
var minimum = new Size();
foreach (View child in LogicalChildren)
foreach (View child in LogicalChildrenInternal)
{
SizeRequest desiredSize = ComputeBoundingRegionDesiredSize(child);

Expand Down
2 changes: 1 addition & 1 deletion Xamarin.Forms.Core/Application.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ public IDictionary<string, object> Properties
get { return _propertiesTask.Result; }
}

internal override ReadOnlyCollection<Element> LogicalChildren
internal override ReadOnlyCollection<Element> LogicalChildrenInternal
{
get { return _logicalChildren ?? (_logicalChildren = new ReadOnlyCollection<Element>(InternalChildren)); }
}
Expand Down
Loading

0 comments on commit d5be2f0

Please sign in to comment.