@ -1,25 +1,12 @@
using System.Diagnostics ;
using System.IO ;
using System.Linq ;
using Moq ;
using Avalonia.Controls ;
using Avalonia.Controls.Presenters ;
using Avalonia.Controls.Primitives ;
using Avalonia.Controls.Templates ;
using Avalonia.Diagnostics ;
using Avalonia.Input ;
using Avalonia.Platform ;
using Avalonia.Rendering ;
using Avalonia.Shared.PlatformSupport ;
using Avalonia.Styling ;
using Avalonia.Them es.Defaul t ;
using Avalonia.UnitTests ;
using Avalonia.VisualTree ;
using Xunit ;
using Avalonia.Media ;
using System ;
using System.Collections.Generic ;
using Avalonia.Controls.UnitTests ;
using Avalonia.UnitTests ;
namespace Avalonia.Layout.UnitTests
{
@ -28,10 +15,8 @@ namespace Avalonia.Layout.UnitTests
[Fact]
public void Grandchild_Size_Changed ( )
{
using ( var context = AvaloniaLocator . EnterScope ( ) )
using ( UnitTestApplication . Start ( TestServices . StyledWindow ) )
{
RegisterServices ( ) ;
Border border ;
TextBlock textBlock ;
@ -55,7 +40,6 @@ namespace Avalonia.Layout.UnitTests
} ;
window . Show ( ) ;
window . LayoutManager . ExecuteInitialLayoutPass ( window ) ;
Assert . Equal ( new Size ( 4 0 0 , 4 0 0 ) , border . Bounds . Size ) ;
textBlock . Width = 2 0 0 ;
@ -68,10 +52,8 @@ namespace Avalonia.Layout.UnitTests
[Fact]
public void Test_ScrollViewer_With_TextBlock ( )
{
using ( var context = AvaloniaLocator . EnterScope ( ) )
using ( UnitTestApplication . Start ( TestServices . StyledWindow ) )
{
RegisterServices ( ) ;
ScrollViewer scrollViewer ;
TextBlock textBlock ;
@ -79,7 +61,6 @@ namespace Avalonia.Layout.UnitTests
{
Width = 8 0 0 ,
Height = 6 0 0 ,
SizeToContent = SizeToContent . WidthAndHeight ,
Content = scrollViewer = new ScrollViewer
{
Width = 2 0 0 ,
@ -99,7 +80,6 @@ namespace Avalonia.Layout.UnitTests
window . Resources [ "ScrollBarThickness" ] = 1 0.0 ;
window . Show ( ) ;
window . LayoutManager . ExecuteInitialLayoutPass ( window ) ;
Assert . Equal ( new Size ( 8 0 0 , 6 0 0 ) , window . Bounds . Size ) ;
Assert . Equal ( new Size ( 2 0 0 , 2 0 0 ) , scrollViewer . Bounds . Size ) ;
@ -131,87 +111,5 @@ namespace Avalonia.Layout.UnitTests
{
return v . Bounds . Position ;
}
class FormattedTextMock : IFormattedTextImpl
{
public FormattedTextMock ( string text )
{
Text = text ;
}
public Size Constraint { get ; set ; }
public string Text { get ; }
public Rect Bounds = > Rect . Empty ;
public void Dispose ( )
{
}
public IEnumerable < FormattedTextLine > GetLines ( ) = > new FormattedTextLine [ 0 ] ;
public TextHitTestResult HitTestPoint ( Point point ) = > new TextHitTestResult ( ) ;
public Rect HitTestTextPosition ( int index ) = > new Rect ( ) ;
public IEnumerable < Rect > HitTestTextRange ( int index , int length ) = > new Rect [ 0 ] ;
public Size Measure ( ) = > Constraint ;
}
private void RegisterServices ( )
{
var globalStyles = new Mock < IGlobalStyles > ( ) ;
var globalStylesResources = globalStyles . As < IResourceNode > ( ) ;
var outObj = ( object ) 1 0 ;
globalStylesResources . Setup ( x = > x . TryGetResource ( "FontSizeNormal" , out outObj ) ) . Returns ( true ) ;
var renderInterface = new Mock < IPlatformRenderInterface > ( ) ;
renderInterface . Setup ( x = >
x . CreateFormattedText (
It . IsAny < string > ( ) ,
It . IsAny < Typeface > ( ) ,
It . IsAny < double > ( ) ,
It . IsAny < TextAlignment > ( ) ,
It . IsAny < TextWrapping > ( ) ,
It . IsAny < Size > ( ) ,
It . IsAny < IReadOnlyList < FormattedTextStyleSpan > > ( ) ) )
. Returns ( new FormattedTextMock ( "TEST" ) ) ;
var streamGeometry = new Mock < IStreamGeometryImpl > ( ) ;
streamGeometry . Setup ( x = >
x . Open ( ) )
. Returns ( new Mock < IStreamGeometryContextImpl > ( ) . Object ) ;
renderInterface . Setup ( x = >
x . CreateStreamGeometry ( ) )
. Returns ( streamGeometry . Object ) ;
var windowImpl = new Mock < IWindowImpl > ( ) ;
Size clientSize = default ( Size ) ;
windowImpl . SetupGet ( x = > x . ClientSize ) . Returns ( ( ) = > clientSize ) ;
windowImpl . Setup ( x = > x . Resize ( It . IsAny < Size > ( ) ) ) . Callback < Size > ( s = > clientSize = s ) ;
windowImpl . Setup ( x = > x . MaxClientSize ) . Returns ( new Size ( 1 0 2 4 , 1 0 2 4 ) ) ;
windowImpl . SetupGet ( x = > x . Scaling ) . Returns ( 1 ) ;
AvaloniaLocator . CurrentMutable
. Bind < IStandardCursorFactory > ( ) . ToConstant ( new CursorFactoryMock ( ) )
. Bind < IAssetLoader > ( ) . ToConstant ( new AssetLoader ( ) )
. Bind < IInputManager > ( ) . ToConstant ( new Mock < IInputManager > ( ) . Object )
. Bind < IGlobalStyles > ( ) . ToConstant ( globalStyles . Object )
. Bind < IRuntimePlatform > ( ) . ToConstant ( new AppBuilder ( ) . RuntimePlatform )
. Bind < IPlatformRenderInterface > ( ) . ToConstant ( renderInterface . Object )
. Bind < IStyler > ( ) . ToConstant ( new Styler ( ) )
. Bind < IFontManagerImpl > ( ) . ToConstant ( new MockFontManagerImpl ( ) )
. Bind < ITextShaperImpl > ( ) . ToConstant ( new MockTextShaperImpl ( ) )
. Bind < IWindowingPlatform > ( ) . ToConstant ( new Avalonia . Controls . UnitTests . WindowingPlatformMock ( ( ) = > windowImpl . Object ) ) ;
var theme = new DefaultTheme ( ) ;
globalStyles . Setup ( x = > x . IsStylesInitialized ) . Returns ( true ) ;
globalStyles . Setup ( x = > x . Styles ) . Returns ( theme ) ;
}
}
}