@@ -138,6 +138,66 @@ Root
138138        XCTAssertEqual ( item,  fromData) 
139139    } 
140140
141+     func  testNavigatorEquality( )  { 
142+         // Test for equal
143+         var  item1  =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ,  isExternal:  true ,  isBeta:  true ) 
144+         var  item2  =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ,  isExternal:  true ,  isBeta:  true ) 
145+         XCTAssertEqual ( item1,  item2) 
146+ 
147+         // Tests for not equal
148+         item1 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ,  isBeta:  true ) 
149+         item2 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ,  isBeta:  false ) 
150+         XCTAssertNotEqual ( item1,  item2) 
151+ 
152+         item1 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ,  isExternal:  true ) 
153+         item2 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ,  isExternal:  false ) 
154+         XCTAssertNotEqual ( item1,  item2) 
155+         
156+         item1 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ) 
157+         item2 =  NavigatorItem ( pageType:  2 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ) 
158+         XCTAssertNotEqual ( item1,  item2) 
159+ 
160+         item1 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ) 
161+         item2 =  NavigatorItem ( pageType:  1 ,  languageID:  5 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ) 
162+         XCTAssertNotEqual ( item1,  item2) 
163+         
164+         item1 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ) 
165+         item2 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Other Title " ,  platformMask:  256 ,  availabilityID:  1024 ) 
166+         XCTAssertNotEqual ( item1,  item2) 
167+         
168+         item1 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ) 
169+         item2 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  257 ,  availabilityID:  1024 ) 
170+         XCTAssertNotEqual ( item1,  item2) 
171+ 
172+         item1 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ) 
173+         item2 =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1025 ) 
174+         XCTAssertNotEqual ( item1,  item2) 
175+     } 
176+     
177+     func  testNavigatorItemRawDumpWithExtraProperties( )  { 
178+         let  item  =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ,  isExternal:  true ,  isBeta:  true ) 
179+         let  data  =  item. rawValue
180+         let  fromData  =  NavigatorItem ( rawValue:  data) 
181+         XCTAssertEqual ( item,  fromData) 
182+     } 
183+     
184+     func  testNavigatorItemRawDumpBackwardCompatibility( )  { 
185+         let  item  =  NavigatorItem ( pageType:  1 ,  languageID:  4 ,  title:  " My Title " ,  platformMask:  256 ,  availabilityID:  1024 ) 
186+         var  data  =  Data ( ) 
187+         data. append ( packedDataFromValue ( item. pageType) ) 
188+         data. append ( packedDataFromValue ( item. languageID) ) 
189+         data. append ( packedDataFromValue ( item. platformMask) ) 
190+         data. append ( packedDataFromValue ( item. availabilityID) ) 
191+         data. append ( packedDataFromValue ( UInt64 ( item. title. utf8. count) ) ) 
192+         data. append ( packedDataFromValue ( UInt64 ( item. path. utf8. count) ) ) 
193+         data. append ( Data ( item. title. utf8) ) 
194+         data. append ( Data ( item. path. utf8) ) 
195+         // Note: NOT adding isBeta and isExternal flags to simulate when they were not supported
196+ 
197+         let  fromData  =  NavigatorItem ( rawValue:  data) 
198+         XCTAssertEqual ( item,  fromData) 
199+     } 
200+     
141201    func  testObjCLanguage( )  { 
142202        let  root  =  generateLargeTree ( ) 
143203        var  objcFiltered :  Node ? 
0 commit comments