@@ -232,6 +232,78 @@ def exec(command, args)
232232 plugin_should_be_installed ( "foo" )
233233 end
234234
235+ it "upgrade plugins version listed in gemfile" do
236+ update_repo2 do
237+ build_plugin "foo" , "1.4.0"
238+ build_plugin "foo" , "1.5.0"
239+ end
240+
241+ gemfile <<-G
242+ source '#{ file_uri_for ( gem_repo2 ) } '
243+ plugin 'foo', "1.4.0"
244+ gem 'rack', "1.0.0"
245+ G
246+
247+ bundle "install"
248+
249+ expect ( out ) . to include ( "Installing foo 1.4.0" )
250+ expect ( out ) . to include ( "Installed plugin foo" )
251+ expect ( out ) . to include ( "Bundle complete!" )
252+
253+ expect ( the_bundle ) . to include_gems ( "rack 1.0.0" )
254+ plugin_should_be_installed ( "foo" )
255+
256+ gemfile <<-G
257+ source '#{ file_uri_for ( gem_repo2 ) } '
258+ plugin 'foo', "1.5.0"
259+ gem 'rack', "1.0.0"
260+ G
261+
262+ bundle "install"
263+
264+ expect ( out ) . to include ( "Installing foo 1.5.0" )
265+ expect ( out ) . to include ( "Bundle complete!" )
266+
267+ expect ( the_bundle ) . to include_gems ( "rack 1.0.0" )
268+ plugin_should_be_installed ( "foo" )
269+ end
270+
271+ it "downgrade plugins version listed in gemfile" do
272+ update_repo2 do
273+ build_plugin "foo" , "1.4.0"
274+ build_plugin "foo" , "1.5.0"
275+ end
276+
277+ gemfile <<-G
278+ source '#{ file_uri_for ( gem_repo2 ) } '
279+ plugin 'foo', "1.5.0"
280+ gem 'rack', "1.0.0"
281+ G
282+
283+ bundle "install"
284+
285+ expect ( out ) . to include ( "Installing foo 1.5.0" )
286+ expect ( out ) . to include ( "Installed plugin foo" )
287+ expect ( out ) . to include ( "Bundle complete!" )
288+
289+ expect ( the_bundle ) . to include_gems ( "rack 1.0.0" )
290+ plugin_should_be_installed ( "foo" )
291+
292+ gemfile <<-G
293+ source '#{ file_uri_for ( gem_repo2 ) } '
294+ plugin 'foo', "1.4.0"
295+ gem 'rack', "1.0.0"
296+ G
297+
298+ bundle "install"
299+
300+ expect ( out ) . to include ( "Installing foo 1.4.0" )
301+ expect ( out ) . to include ( "Bundle complete!" )
302+
303+ expect ( the_bundle ) . to include_gems ( "rack 1.0.0" )
304+ plugin_should_be_installed ( "foo" )
305+ end
306+
235307 it "install only plugins not installed yet listed in gemfile" do
236308 gemfile <<-G
237309 source '#{ file_uri_for ( gem_repo2 ) } '
0 commit comments