You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by br...@apache.org on 2013/05/29 17:34:52 UTC

git commit: Fix util/plugins tests

Updated Branches:
  refs/heads/master b3f21f377 -> 06bd1aab7


Fix util/plugins tests

These were failing due to making git clone synchronous.


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugman/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugman/commit/06bd1aab
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugman/tree/06bd1aab
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugman/diff/06bd1aab

Branch: refs/heads/master
Commit: 06bd1aab796a54987a10d4e30fed4ffffa806db1
Parents: b3f21f3
Author: Braden Shepherdson <br...@gmail.com>
Authored: Wed May 29 11:34:01 2013 -0400
Committer: Braden Shepherdson <br...@gmail.com>
Committed: Wed May 29 11:34:01 2013 -0400

----------------------------------------------------------------------
 spec/util/plugins.spec.js |   33 +++++++++++++++++++++++++--------
 1 files changed, 25 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/06bd1aab/spec/util/plugins.spec.js
----------------------------------------------------------------------
diff --git a/spec/util/plugins.spec.js b/spec/util/plugins.spec.js
index d2af311..8f217cf 100644
--- a/spec/util/plugins.spec.js
+++ b/spec/util/plugins.spec.js
@@ -29,17 +29,35 @@ var http   = require('http'),
 describe('plugins utility module', function(){
     describe('clonePluginGitRepo', function(){
         it('should shell out to git clone with correct arguments', function(){
-            var mySpy = spyOn(shell, 'exec');
+            var execSpy = spyOn(shell, 'exec').andReturn({
+                code: 0,
+                output: 'git output'
+            });
+            var fake_id = 'fake.plugin.id';
+            var xml = {
+                getroot: function() {
+                    return { attrib: { id: fake_id } };
+                }
+            };
+
+            spyOn(xml_helpers, 'parseElementtreeSync').andReturn(xml);
+            spyOn(shell, 'cp');
             var plugin_git_url = 'https://github.com/imhotep/ChildBrowser'
-            
-            plugins.clonePluginGitRepo(plugin_git_url, temp, '.');
-            
-            expect(mySpy).toHaveBeenCalled();
+
+            var callback = jasmine.createSpy();
+
+            plugins.clonePluginGitRepo(plugin_git_url, temp, '.', undefined, callback);
+
+            expect(execSpy).toHaveBeenCalled();
             var git_clone_regex = new RegExp('^git clone "' + plugin_git_url + '" ".*"$', 'gi');
-            expect(mySpy.mostRecentCall.args[0]).toMatch(git_clone_regex);
+            expect(execSpy.mostRecentCall.args[0]).toMatch(git_clone_regex);
+
+            expect(callback).toHaveBeenCalled();
+            expect(callback.mostRecentCall.args[0]).toBe(null);
+            expect(callback.mostRecentCall.args[1]).toMatch(new RegExp('/' + fake_id + '$'));
         });
         it('should take into account subdirectory argument when copying over final repository into plugins+plugin_id directory', function() {
-            var exec_spy = spyOn(shell, 'exec');
+            var exec_spy = spyOn(shell, 'exec').andReturn({ code: 0, output: 'git clone output' });
             var cp_spy = spyOn(shell, 'cp');
             var fake_id = 'VillageDrunkard';
             var xml_spy = spyOn(xml_helpers, 'parseElementtreeSync').andReturn({
@@ -53,7 +71,6 @@ describe('plugins utility module', function(){
             
             var fake_subdir = 'TheBrainRecoilsInHorror';
             plugins.clonePluginGitRepo(plugin_git_url, temp, fake_subdir);
-            exec_spy.mostRecentCall.args[2](0); // fake out shell.exec finishing appropriately (so we dont ACTUALLY shell out to git-clone, assume it worked fine)
             var expected_subdir_cp_path = new RegExp(fake_subdir + '[\\\\\\/]\\*$', 'gi');
             expect(cp_spy.mostRecentCall.args[1]).toMatch(expected_subdir_cp_path);
             expect(cp_spy.mostRecentCall.args[2]).toEqual(path.join(temp, fake_id));