@@ -139,6 +139,77 @@ exports.addResourceFile = {
139139 test . equal ( newFile . path , 'assets.bundle' ) ;
140140 test . done ( ) ;
141141 } ,
142+ 'when added with { plugin: true }' : {
143+
144+ 'should add the PBXFileReference with the "Plugins" path' : function ( test ) {
145+ delete proj . pbxGroupByName ( 'Plugins' ) . path ;
146+
147+ var newFile = proj . addResourceFile ( 'Plugins/assets.bundle' ,
148+ { plugin : true } ) ,
149+ fileRefSection = proj . pbxFileReferenceSection ( ) ,
150+ fileRefEntry = fileRefSection [ newFile . fileRef ] ;
151+
152+ test . equal ( fileRefEntry . isa , 'PBXFileReference' ) ;
153+ test . equal ( fileRefEntry . fileEncoding , undefined ) ;
154+ test . equal ( fileRefEntry . lastKnownFileType , '"wrapper.plug-in"' ) ;
155+ test . equal ( fileRefEntry . name , 'assets.bundle' ) ;
156+ test . equal ( fileRefEntry . path , 'Plugins/assets.bundle' ) ;
157+ test . equal ( fileRefEntry . sourceTree , '"<group>"' ) ;
158+ test . done ( ) ;
159+ } ,
160+
161+ 'should add to the Plugins PBXGroup group' : function ( test ) {
162+ var newFile = proj . addResourceFile ( 'Plugins/assets.bundle' ,
163+ { plugin : true } ) ,
164+ plugins = proj . pbxGroupByName ( 'Plugins' ) ;
165+
166+ test . equal ( plugins . children . length , 1 ) ;
167+ test . done ( ) ;
168+ } ,
169+
170+ 'should have the Plugins values for the PBXGroup entry' : function ( test ) {
171+ var newFile = proj . addResourceFile ( 'Plugins/assets.bundle' ,
172+ { plugin : true } ) ,
173+ plugins = proj . pbxGroupByName ( 'Plugins' ) ,
174+ pluginObj = plugins . children [ 0 ] ;
175+
176+ test . equal ( pluginObj . comment , 'assets.bundle' ) ;
177+ test . equal ( pluginObj . value , newFile . fileRef ) ;
178+ test . done ( ) ;
179+ } ,
180+
181+ 'should add to the PBXSourcesBuildPhase' : function ( test ) {
182+ var newFile = proj . addResourceFile ( 'Plugins/assets.bundle' ,
183+ { plugin : true } ) ,
184+ sources = proj . pbxResourcesBuildPhaseObj ( ) ;
185+
186+ test . equal ( sources . files . length , 13 ) ;
187+ test . done ( ) ;
188+ } ,
189+
190+ 'should have the right values for the Sources entry' : function ( test ) {
191+ var newFile = proj . addResourceFile ( 'Plugins/assets.bundle' ,
192+ { plugin : true } ) ,
193+ sources = proj . pbxResourcesBuildPhaseObj ( ) ,
194+ sourceObj = sources . files [ 12 ] ;
195+
196+ test . equal ( sourceObj . comment , 'assets.bundle in Resources' ) ;
197+ test . equal ( sourceObj . value , newFile . uuid ) ;
198+ test . done ( ) ;
199+ } ,
200+
201+ 'should remove "Plugins/" from path if group path is set' : function ( test ) {
202+ var plugins = proj . pbxGroupByName ( 'Plugins' ) ,
203+ newFile ;
204+
205+ plugins . path = '"Test200/Plugins"' ;
206+ newFile = proj . addResourceFile ( 'Plugins/assets.bundle' ,
207+ { plugin : true } ) ;
208+
209+ test . equal ( newFile . path , 'assets.bundle' ) ;
210+ test . done ( ) ;
211+ }
212+ } ,
142213 tearDown : function ( callback ) {
143214 delete proj . pbxGroupByName ( 'Resources' ) . path ;
144215 callback ( ) ;
0 commit comments