test/sync_helper_test.rb in esr-rim-1.2.2 vs test/sync_helper_test.rb in esr-rim-1.3.0

- old
+ new

@@ -42,13 +42,52 @@ assert log.size == 2 assert log[0].include?("mod1") assert log[1].include?("mod2") assert File.exist?(File.join(@ws_dir, "mod1")) assert File.exist?(File.join(@ws_dir, "mod2")) + assert File.exist?(File.join(@ws_dir, "mod1", "readme.txt")) + assert File.exist?(File.join(@ws_dir, "mod2", "readme.txt")) end end + def test_files_are_synchronized_subtree + mod_git_dir = create_all_module_git("mod_all") + mod_a_info = RIM::ModuleInfo.new("file://" + mod_git_dir, "modules/a", "master", nil, nil, "mod_a") + create_ws_git("testbr") + cut = RIM::SyncHelper.new(@ws_dir, @logger, [mod_a_info]) + cut.sync + RIM::git_session(@ws_dir) do |s| + assert !File.exist?(File.join(@ws_dir, "modules", "a")) + s.execute("git checkout rim/testbr") + check_not_dirty(s) + log = s.execute("git log | grep \" module \"").split("\n").sort + assert log.size == 1 + assert log[0].include?("modules/a") + assert !File.exist?(File.join(@ws_dir, "modules", "b")) + assert File.exist?(File.join(@ws_dir, "modules", "a")) + assert File.exist?(File.join(@ws_dir, "modules", "a", "file_a.c")) + end + end + + def test_files_are_synchronized_subtree_deep + mod_git_dir = create_all_module_git("mod_all") + mod_a_info = RIM::ModuleInfo.new("file://" + mod_git_dir, "modules/b_src", "master", nil, nil, "mod_b/src") + create_ws_git("testbr") + cut = RIM::SyncHelper.new(@ws_dir, @logger, [mod_a_info]) + cut.sync + RIM::git_session(@ws_dir) do |s| + assert !File.exist?(File.join(@ws_dir, "modules", "b_src")) + s.execute("git checkout rim/testbr") + check_not_dirty(s) + log = s.execute("git log | grep \" module \"").split("\n").sort + assert log.size == 1 + assert log[0].include?("modules/b_src") + assert File.exist?(File.join(@ws_dir, "modules", "b_src", "file_b.c")) + end + end + + def test_files_are_synchronized_on_existing_branch mod1_info = create_module_git("mod1") mod2_info = create_module_git("mod2") create_ws_git("testbr") cut = RIM::SyncHelper.new(@ws_dir, @logger, [mod1_info, mod2_info]) @@ -213,9 +252,31 @@ end s.execute("git add .") s.execute("git commit -m \"Initial commit\"") end return RIM::ModuleInfo.new("file://" + git_dir, name, branch) + end + + def create_all_module_git(name, branch = "master") + git_dir = File.join(@remote_git_dir, name) + FileUtils.mkdir_p(File.join(git_dir,"mod_a")) + FileUtils.mkdir_p(File.join(git_dir,"mod_b","src")) + RIM::git_session(git_dir) do |s| + s.execute("git init") + s.execute("git checkout -B #{branch}") + File.open(File.join(git_dir, "readme.txt"), "w") do |f| + f.write("Content.") + end + File.open(File.join(git_dir, "mod_a", "file_a.c"), "w") do |f| + f.write("Content.") + end + File.open(File.join(git_dir, "mod_b", "src", "file_b.c"), "w") do |f| + f.write("Content.") + end + s.execute("git add .") + s.execute("git commit -m \"Initial commit\"") + end + return git_dir end def path_from_module_info(module_info) module_info.remote_url.gsub(/^file:\/\//, "") end