1+ import * as TKUnit from "../TKUnit" ;
2+ import { Page } from "tns-core-modules/ui/page" ;
3+ import { Frame , NavigationEntry , stack } from "tns-core-modules/ui/frame" ;
4+ import { _resetRootView , getRootView } from "tns-core-modules/application" ;
5+ import { TabView , TabViewItem } from "tns-core-modules/ui/tab-view" ;
6+
7+ function createTestFrameRootEntry ( ) {
8+ const page = new Page ( ) ;
9+ const frameRoot = new Frame ( ) ;
10+ frameRoot . navigate ( ( ) => page ) ;
11+
12+ const entry : NavigationEntry = {
13+ create : ( ) => frameRoot
14+ } ;
15+
16+ return {
17+ entry : entry ,
18+ root : frameRoot ,
19+ page : page
20+ } ;
21+ }
22+
23+ function createTestTabRootEntry ( ) {
24+ const testFrameRoot1 = createTestFrameRootEntry ( ) ;
25+ const testFrameRoot2 = createTestFrameRootEntry ( ) ;
26+
27+ const tabView = new TabView ( ) ;
28+ const tabEntry1 = new TabViewItem ( ) ;
29+ tabEntry1 . title = "frameRoot1" ;
30+ tabEntry1 . view = testFrameRoot1 . root ;
31+ const tabEntry2 = new TabViewItem ( ) ;
32+ tabEntry2 . title = "frameRoot2" ;
33+ tabEntry2 . view = testFrameRoot2 . root ;
34+ tabView . items = [ tabEntry1 , tabEntry2 ] ;
35+
36+ const entry : NavigationEntry = {
37+ create : ( ) => tabView
38+ } ;
39+
40+ return {
41+ entry : entry ,
42+ root : tabView ,
43+ page : testFrameRoot1 . page
44+ } ;
45+ }
46+
47+ export function test_reset_frame_to_frame ( ) {
48+ const testFrameRoot1 = createTestFrameRootEntry ( ) ;
49+
50+ _resetRootView ( testFrameRoot1 . entry ) ;
51+ TKUnit . waitUntilReady ( ( ) => testFrameRoot1 . page . isLoaded ) ;
52+
53+ const rootView1 = getRootView ( ) ;
54+ const frameStack1 = stack ( ) ;
55+ TKUnit . assertEqual ( rootView1 , testFrameRoot1 . root ) ;
56+ TKUnit . assertEqual ( frameStack1 . length , 1 ) ;
57+
58+ const testFrameRoot2 = createTestFrameRootEntry ( ) ;
59+
60+ _resetRootView ( testFrameRoot2 . entry ) ;
61+ TKUnit . waitUntilReady ( ( ) => testFrameRoot2 . page . isLoaded ) ;
62+
63+ const rootView2 = getRootView ( ) ;
64+ const frameStack2 = stack ( ) ;
65+ TKUnit . assertEqual ( rootView2 , testFrameRoot2 . root ) ;
66+ TKUnit . assertEqual ( frameStack2 . length , 1 ) ;
67+ } ;
68+
69+ export function test_reset_frame_to_tab ( ) {
70+ const testFrameRoot = createTestFrameRootEntry ( ) ;
71+
72+ _resetRootView ( testFrameRoot . entry ) ;
73+ TKUnit . waitUntilReady ( ( ) => testFrameRoot . page . isLoaded ) ;
74+
75+ const rootView1 = getRootView ( ) ;
76+ const frameStack1 = stack ( ) ;
77+ TKUnit . assertEqual ( rootView1 , testFrameRoot . root ) ;
78+ TKUnit . assertEqual ( frameStack1 . length , 1 ) ;
79+
80+ const testTabRoot = createTestTabRootEntry ( ) ;
81+
82+ _resetRootView ( testTabRoot . entry ) ;
83+ TKUnit . waitUntilReady ( ( ) => testTabRoot . page . isLoaded ) ;
84+
85+ const rootView2 = getRootView ( ) ;
86+ const frameStack2 = stack ( ) ;
87+ TKUnit . assertEqual ( rootView2 , testTabRoot . root ) ;
88+ TKUnit . assertEqual ( frameStack2 . length , 2 ) ;
89+ } ;
90+
91+ export function test_reset_tab_to_frame ( ) {
92+ const testTabRoot = createTestTabRootEntry ( ) ;
93+
94+ _resetRootView ( testTabRoot . entry ) ;
95+ TKUnit . waitUntilReady ( ( ) => testTabRoot . page . isLoaded ) ;
96+
97+ const rootView2 = getRootView ( ) ;
98+ const frameStack2 = stack ( ) ;
99+ TKUnit . assertEqual ( rootView2 , testTabRoot . root ) ;
100+ TKUnit . assertEqual ( frameStack2 . length , 2 ) ;
101+
102+ const testFrameRoot = createTestFrameRootEntry ( ) ;
103+
104+ _resetRootView ( testFrameRoot . entry ) ;
105+ TKUnit . waitUntilReady ( ( ) => testFrameRoot . page . isLoaded ) ;
106+
107+ const rootView1 = getRootView ( ) ;
108+ const frameStack1 = stack ( ) ;
109+ TKUnit . assertEqual ( rootView1 , testFrameRoot . root ) ;
110+ TKUnit . assertEqual ( frameStack1 . length , 1 ) ;
111+ } ;
112+
113+ export function test_reset_tab_to_tab ( ) {
114+ const testTabRoot1 = createTestTabRootEntry ( ) ;
115+
116+ _resetRootView ( testTabRoot1 . entry ) ;
117+ TKUnit . waitUntilReady ( ( ) => testTabRoot1 . page . isLoaded ) ;
118+
119+ const rootView1 = getRootView ( ) ;
120+ const frameStack1 = stack ( ) ;
121+ TKUnit . assertEqual ( rootView1 , testTabRoot1 . root ) ;
122+ TKUnit . assertEqual ( frameStack1 . length , 2 ) ;
123+
124+ const testTabRoot2 = createTestTabRootEntry ( ) ;
125+
126+ _resetRootView ( testTabRoot2 . entry ) ;
127+ TKUnit . waitUntilReady ( ( ) => testTabRoot2 . page . isLoaded ) ;
128+
129+ const rootView2 = getRootView ( ) ;
130+ const frameStack2 = stack ( ) ;
131+ TKUnit . assertEqual ( rootView2 , testTabRoot2 . root ) ;
132+ TKUnit . assertEqual ( frameStack2 . length , 2 ) ;
133+ } ;
134+
135+ export function tearDownModule ( ) {
136+ // reset the root to frame for other tests
137+ const resetFrameRoot = createTestFrameRootEntry ( ) ;
138+
139+ _resetRootView ( resetFrameRoot . entry ) ;
140+ TKUnit . waitUntilReady ( ( ) => resetFrameRoot . page . isLoaded ) ;
141+ }
0 commit comments