1
1
// Licensed to the .NET Foundation under one or more agreements.
2
2
// The .NET Foundation licenses this file to you under the MIT license.
3
3
4
- using System ;
5
- using System . Linq ;
6
4
using System . Runtime . InteropServices ;
7
5
using BasicTestApp ;
8
6
using BasicTestApp . RouterTest ;
12
10
using Microsoft . AspNetCore . Testing ;
13
11
using OpenQA . Selenium ;
14
12
using OpenQA . Selenium . Interactions ;
15
- using Xunit ;
16
13
using Xunit . Abstractions ;
17
14
18
15
namespace Microsoft . AspNetCore . Components . E2ETest . Tests
@@ -777,27 +774,51 @@ public void CanArriveAtQueryStringPageWithNoQuery()
777
774
Assert . Equal ( "Hello Abc ." , app . FindElement ( By . Id ( "test-info" ) ) . Text ) ;
778
775
Assert . Equal ( "0" , app . FindElement ( By . Id ( "value-QueryInt" ) ) . Text ) ;
779
776
Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateTimeValue" ) ) . Text ) ;
777
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateOnlyValue" ) ) . Text ) ;
778
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableTimeOnlyValue" ) ) . Text ) ;
780
779
Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-StringValue" ) ) . Text ) ;
781
780
Assert . Equal ( "0 values ()" , app . FindElement ( By . Id ( "value-LongValues" ) ) . Text ) ;
782
781
783
782
AssertHighlightedLinks ( "With query parameters (none)" ) ;
784
783
}
785
784
786
785
[ Fact ]
787
- public void CanArriveAtQueryStringPageWithQuery ( )
786
+ public void CanArriveAtQueryStringPageWithStringQuery ( )
788
787
{
789
788
SetUrlViaPushState ( "/WithQueryParameters/Abc?stringvalue=Hello+there" ) ;
790
789
791
790
var app = Browser . MountTestComponent < TestRouter > ( ) ;
792
791
Assert . Equal ( "Hello Abc ." , app . FindElement ( By . Id ( "test-info" ) ) . Text ) ;
793
792
Assert . Equal ( "0" , app . FindElement ( By . Id ( "value-QueryInt" ) ) . Text ) ;
794
793
Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateTimeValue" ) ) . Text ) ;
794
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateOnlyValue" ) ) . Text ) ;
795
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableTimeOnlyValue" ) ) . Text ) ;
795
796
Assert . Equal ( "Hello there" , app . FindElement ( By . Id ( "value-StringValue" ) ) . Text ) ;
796
797
Assert . Equal ( "0 values ()" , app . FindElement ( By . Id ( "value-LongValues" ) ) . Text ) ;
797
798
798
799
AssertHighlightedLinks ( "With query parameters (none)" , "With query parameters (passing string value)" ) ;
799
800
}
800
801
802
+ [ Fact ]
803
+ public void CanArriveAtQueryStringPageWithDateTimeQuery ( )
804
+ {
805
+ var dateTime = new DateTime ( 2000 , 1 , 2 , 3 , 4 , 5 , 6 ) ;
806
+ var dateOnly = new DateOnly ( 2000 , 1 , 2 ) ;
807
+ var timeOnly = new TimeOnly ( 3 , 4 , 5 , 6 ) ;
808
+ SetUrlViaPushState ( $ "/WithQueryParameters/Abc?NullableDateTimeValue=2000-01-02%2003:04:05&NullableDateOnlyValue=2000-01-02&NullableTimeOnlyValue=03:04:05") ;
809
+
810
+ var app = Browser . MountTestComponent < TestRouter > ( ) ;
811
+ Assert . Equal ( "Hello Abc ." , app . FindElement ( By . Id ( "test-info" ) ) . Text ) ;
812
+ Assert . Equal ( "0" , app . FindElement ( By . Id ( "value-QueryInt" ) ) . Text ) ;
813
+ Assert . Equal ( dateTime . ToString ( "hh:mm:ss on yyyy-MM-dd" ) , app . FindElement ( By . Id ( "value-NullableDateTimeValue" ) ) . Text ) ;
814
+ Assert . Equal ( dateOnly . ToString ( "yyyy-MM-dd" ) , app . FindElement ( By . Id ( "value-NullableDateOnlyValue" ) ) . Text ) ;
815
+ Assert . Equal ( timeOnly . ToString ( "hh:mm:ss" ) , app . FindElement ( By . Id ( "value-NullableTimeOnlyValue" ) ) . Text ) ;
816
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-StringValue" ) ) . Text ) ;
817
+ Assert . Equal ( "0 values ()" , app . FindElement ( By . Id ( "value-LongValues" ) ) . Text ) ;
818
+
819
+ AssertHighlightedLinks ( "With query parameters (none)" , "With query parameters (passing Date Time values)" ) ;
820
+ }
821
+
801
822
[ Fact ]
802
823
public void CanNavigateToQueryStringPageWithNoQuery ( )
803
824
{
@@ -809,6 +830,8 @@ public void CanNavigateToQueryStringPageWithNoQuery()
809
830
Assert . Equal ( "Hello Abc ." , app . FindElement ( By . Id ( "test-info" ) ) . Text ) ;
810
831
Assert . Equal ( "0" , app . FindElement ( By . Id ( "value-QueryInt" ) ) . Text ) ;
811
832
Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateTimeValue" ) ) . Text ) ;
833
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateOnlyValue" ) ) . Text ) ;
834
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableTimeOnlyValue" ) ) . Text ) ;
812
835
Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-StringValue" ) ) . Text ) ;
813
836
Assert . Equal ( "0 values ()" , app . FindElement ( By . Id ( "value-LongValues" ) ) . Text ) ;
814
837
@@ -827,6 +850,8 @@ public void CanNavigateBetweenPagesWithQueryStrings()
827
850
Browser . Equal ( "Hello Abc ." , ( ) => app . FindElement ( By . Id ( "test-info" ) ) . Text ) ;
828
851
Assert . Equal ( "0" , app . FindElement ( By . Id ( "value-QueryInt" ) ) . Text ) ;
829
852
Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateTimeValue" ) ) . Text ) ;
853
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateOnlyValue" ) ) . Text ) ;
854
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableTimeOnlyValue" ) ) . Text ) ;
830
855
Assert . Equal ( "Hello there" , app . FindElement ( By . Id ( "value-StringValue" ) ) . Text ) ;
831
856
Assert . Equal ( "0 values ()" , app . FindElement ( By . Id ( "value-LongValues" ) ) . Text ) ;
832
857
var instanceId = app . FindElement ( By . Id ( "instance-id" ) ) . Text ;
@@ -838,6 +863,8 @@ public void CanNavigateBetweenPagesWithQueryStrings()
838
863
app . FindElement ( By . LinkText ( "With IntValue and LongValues" ) ) . Click ( ) ;
839
864
Browser . Equal ( "123" , ( ) => app . FindElement ( By . Id ( "value-QueryInt" ) ) . Text ) ;
840
865
Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateTimeValue" ) ) . Text ) ;
866
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateOnlyValue" ) ) . Text ) ;
867
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableTimeOnlyValue" ) ) . Text ) ;
841
868
Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-StringValue" ) ) . Text ) ;
842
869
Assert . Equal ( "3 values (50, 100, -20)" , app . FindElement ( By . Id ( "value-LongValues" ) ) . Text ) ;
843
870
Assert . Equal ( instanceId , app . FindElement ( By . Id ( "instance-id" ) ) . Text ) ;
@@ -847,6 +874,8 @@ public void CanNavigateBetweenPagesWithQueryStrings()
847
874
Browser . Navigate ( ) . Back ( ) ;
848
875
Browser . Equal ( "0" , ( ) => app . FindElement ( By . Id ( "value-QueryInt" ) ) . Text ) ;
849
876
Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateTimeValue" ) ) . Text ) ;
877
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableDateOnlyValue" ) ) . Text ) ;
878
+ Assert . Equal ( string . Empty , app . FindElement ( By . Id ( "value-NullableTimeOnlyValue" ) ) . Text ) ;
850
879
Assert . Equal ( "Hello there" , app . FindElement ( By . Id ( "value-StringValue" ) ) . Text ) ;
851
880
Assert . Equal ( "0 values ()" , app . FindElement ( By . Id ( "value-LongValues" ) ) . Text ) ;
852
881
Assert . Equal ( instanceId , app . FindElement ( By . Id ( "instance-id" ) ) . Text ) ;
0 commit comments