(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"Test the Git Mediawiki remote helper: git clone">)} spids: [32] ) ] spids: [32] ) (C {(.)} {(./test-gitmw-lib.sh)}) (C {(.)} {($ VSub_Name "$TEST_DIRECTORY") (/test-lib.sh)}) (C {(test_check_precond)}) (C {(test_expect_success)} {(SQ <"Git clone creates the expected git log with one file">)} { (SQ <"\n"> <"\twiki_reset &&\n"> < "\twiki_editpage foo \"this is not important\" false -c cat -s \"this must be the same\" &&\n" > <"\tgit clone mediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_1 &&\n"> <"\t(\n"> <"\t\tcd mw_dir_1 &&\n"> <"\t\tgit log --format=%s HEAD^..HEAD >log.tmp\n"> <"\t) &&\n"> <"\techo \"this must be the same\" >msg.tmp &&\n"> <"\tdiff -b mw_dir_1/log.tmp msg.tmp\n"> ) } ) (C {(test_expect_success)} {(SQ <"Git clone creates the expected git log with multiple files">)} { (SQ <"\n"> <"\twiki_reset &&\n"> < "\twiki_editpage daddy \"this is not important\" false -s=\"this must be the same\" &&\n" > <"\twiki_editpage daddy \"neither is this\" true -s=\"this must also be the same\" &&\n"> <"\twiki_editpage daddy \"neither is this\" true -s=\"same same same\" &&\n"> <"\twiki_editpage dj \"dont care\" false -s=\"identical\" &&\n"> <"\twiki_editpage dj \"dont care either\" true -s=\"identical too\" &&\n"> <"\tgit clone mediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_2 &&\n"> <"\t(\n"> <"\t\tcd mw_dir_2 &&\n"> <"\t\tgit log --format=%s Daddy.mw >logDaddy.tmp &&\n"> <"\t\tgit log --format=%s Dj.mw >logDj.tmp\n"> <"\t) &&\n"> <"\techo \"same same same\" >msgDaddy.tmp &&\n"> <"\techo \"this must also be the same\" >>msgDaddy.tmp &&\n"> <"\techo \"this must be the same\" >>msgDaddy.tmp &&\n"> <"\techo \"identical too\" >msgDj.tmp &&\n"> <"\techo \"identical\" >>msgDj.tmp &&\n"> <"\tdiff -b mw_dir_2/logDaddy.tmp msgDaddy.tmp &&\n"> <"\tdiff -b mw_dir_2/logDj.tmp msgDj.tmp\n"> ) } ) (C {(test_expect_success)} {(SQ <"Git clone creates only Main_Page.mw with an empty wiki">)} {(SQ <"\n"> <"\twiki_reset &&\n"> <"\tgit clone mediawiki::">) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_3 &&\n"> <"\ttest_contains_N_files mw_dir_3 1 &&\n"> <"\ttest_path_is_file mw_dir_3/Main_Page.mw\n"> ) } ) (C {(test_expect_success)} {(SQ <"Git clone does not fetch a deleted page">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage foo \"this page must be deleted before the clone\" false &&\n"> <"\twiki_delete_page foo &&\n"> <"\tgit clone mediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_4 &&\n"> <"\ttest_contains_N_files mw_dir_4 1 &&\n"> <"\ttest_path_is_file mw_dir_4/Main_Page.mw &&\n"> <"\ttest_path_is_missing mw_dir_4/Foo.mw\n"> ) } ) (C {(test_expect_success)} {(SQ <"Git clone works with page added">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage foo \" I will be cloned\" false &&\n"> <"\twiki_editpage bar \"I will be cloned\" false &&\n"> <"\tgit clone mediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_5 &&\n"> <"\twiki_getallpage ref_page_5 &&\n"> <"\ttest_diff_directories mw_dir_5 ref_page_5 &&\n"> <"\twiki_delete_page foo &&\n"> <"\twiki_delete_page bar\n"> ) } ) (C {(test_expect_success)} {(SQ <"Git clone works with an edited page ">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage foo \"this page will be edited\" \\\n"> <"\t\tfalse -s \"first edition of page foo\"&&\n"> <"\twiki_editpage foo \"this page has been edited and must be on the clone \" true &&\n"> <"\tgit clone mediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_6 &&\n"> <"\ttest_path_is_file mw_dir_6/Foo.mw &&\n"> <"\ttest_path_is_file mw_dir_6/Main_Page.mw &&\n"> <"\twiki_getallpage mw_dir_6/page_ref_6 &&\n"> <"\ttest_diff_directories mw_dir_6 mw_dir_6/page_ref_6 &&\n"> <"\t(\n"> <"\t\tcd mw_dir_6 &&\n"> <"\t\tgit log --format=%s HEAD^ Foo.mw > ../Foo.log\n"> <"\t) &&\n"> <"\techo \"first edition of page foo\" > FooExpect.log &&\n"> <"\tdiff FooExpect.log Foo.log\n"> ) } ) (C {(test_expect_success)} {(SQ <"Git clone works with several pages and some deleted ">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage foo \"this page will not be deleted\" false &&\n"> <"\twiki_editpage bar \"I must not be erased\" false &&\n"> <"\twiki_editpage namnam \"I will not be there at the end\" false &&\n"> <"\twiki_editpage nyancat \"nyan nyan nyan delete me\" false &&\n"> <"\twiki_delete_page namnam &&\n"> <"\twiki_delete_page nyancat &&\n"> <"\tgit clone mediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_7 &&\n"> <"\ttest_path_is_file mw_dir_7/Foo.mw &&\n"> <"\ttest_path_is_file mw_dir_7/Bar.mw &&\n"> <"\ttest_path_is_missing mw_dir_7/Namnam.mw &&\n"> <"\ttest_path_is_missing mw_dir_7/Nyancat.mw &&\n"> <"\twiki_getallpage mw_dir_7/page_ref_7 &&\n"> <"\ttest_diff_directories mw_dir_7 mw_dir_7/page_ref_7\n"> ) } ) (C {(test_expect_success)} {(SQ <"Git clone works with one specific page cloned ">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage foo \"I will not be cloned\" false &&\n"> <"\twiki_editpage bar \"Do not clone me\" false &&\n"> <"\twiki_editpage namnam \"I will be cloned :)\" false -s=\"this log must stay\" &&\n"> <"\twiki_editpage nyancat \"nyan nyan nyan you cant clone me\" false &&\n"> <"\tgit clone -c remote.origin.pages=namnam \\\n"> <"\t\tmediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_8 &&\n"> <"\ttest_contains_N_files mw_dir_8 1 &&\n"> <"\ttest_path_is_file mw_dir_8/Namnam.mw &&\n"> <"\ttest_path_is_missing mw_dir_8/Main_Page.mw &&\n"> <"\t(\n"> <"\t\tcd mw_dir_8 &&\n"> <"\t\techo \"this log must stay\" >msg.tmp &&\n"> <"\t\tgit log --format=%s >log.tmp &&\n"> <"\t\tdiff -b msg.tmp log.tmp\n"> <"\t) &&\n"> <"\twiki_check_content mw_dir_8/Namnam.mw Namnam\n"> ) } ) (C {(test_expect_success)} {(SQ <"Git clone works with multiple specific page cloned ">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage foo \"I will be there\" false &&\n"> <"\twiki_editpage bar \"I will not disapear\" false &&\n"> <"\twiki_editpage namnam \"I be erased\" false &&\n"> <"\twiki_editpage nyancat \"nyan nyan nyan you will not erase me\" false &&\n"> <"\twiki_delete_page namnam &&\n"> <"\tgit clone -c remote.origin.pages=\"foo bar nyancat namnam\" \\\n"> <"\t\tmediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_9 &&\n"> <"\ttest_contains_N_files mw_dir_9 3 &&\n"> <"\ttest_path_is_missing mw_dir_9/Namnam.mw &&\n"> <"\ttest_path_is_file mw_dir_9/Foo.mw &&\n"> <"\ttest_path_is_file mw_dir_9/Nyancat.mw &&\n"> <"\ttest_path_is_file mw_dir_9/Bar.mw &&\n"> <"\twiki_check_content mw_dir_9/Foo.mw Foo &&\n"> <"\twiki_check_content mw_dir_9/Bar.mw Bar &&\n"> <"\twiki_check_content mw_dir_9/Nyancat.mw Nyancat\n"> ) } ) (C {(test_expect_success)} {(SQ <"Mediawiki-clone of several specific pages on wiki">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage foo \"foo 1\" false &&\n"> <"\twiki_editpage bar \"bar 1\" false &&\n"> <"\twiki_editpage dummy \"dummy 1\" false &&\n"> <"\twiki_editpage cloned_1 \"cloned_1 1\" false &&\n"> <"\twiki_editpage cloned_2 \"cloned_2 2\" false &&\n"> <"\twiki_editpage cloned_3 \"cloned_3 3\" false &&\n"> <"\tmkdir -p ref_page_10 &&\n"> <"\twiki_getpage cloned_1 ref_page_10 &&\n"> <"\twiki_getpage cloned_2 ref_page_10 &&\n"> <"\twiki_getpage cloned_3 ref_page_10 &&\n"> <"\tgit clone -c remote.origin.pages=\"cloned_1 cloned_2 cloned_3\" \\\n"> <"\t\tmediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_10 &&\n"> <"\ttest_diff_directories mw_dir_10 ref_page_10\n">) } ) (C {(test_expect_success)} {(SQ <"Git clone works with the shallow option">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage foo \"1st revision, should be cloned\" false &&\n"> <"\twiki_editpage bar \"1st revision, should be cloned\" false &&\n"> <"\twiki_editpage nyan \"1st revision, should not be cloned\" false &&\n"> <"\twiki_editpage nyan \"2nd revision, should be cloned\" false &&\n"> <"\tgit -c remote.origin.shallow=true clone \\\n"> <"\t\tmediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_11 &&\n"> <"\ttest_contains_N_files mw_dir_11 4 &&\n"> <"\ttest_path_is_file mw_dir_11/Nyan.mw &&\n"> <"\ttest_path_is_file mw_dir_11/Foo.mw &&\n"> <"\ttest_path_is_file mw_dir_11/Bar.mw &&\n"> <"\ttest_path_is_file mw_dir_11/Main_Page.mw &&\n"> <"\t(\n"> <"\t\tcd mw_dir_11 &&\n"> <"\t\ttest $(git log --oneline Nyan.mw | wc -l) -eq 1 &&\n"> <"\t\ttest $(git log --oneline Foo.mw | wc -l) -eq 1 &&\n"> <"\t\ttest $(git log --oneline Bar.mw | wc -l) -eq 1 &&\n"> <"\t\ttest $(git log --oneline Main_Page.mw | wc -l ) -eq 1\n"> <"\t) &&\n"> <"\twiki_check_content mw_dir_11/Nyan.mw Nyan &&\n"> <"\twiki_check_content mw_dir_11/Foo.mw Foo &&\n"> <"\twiki_check_content mw_dir_11/Bar.mw Bar &&\n"> <"\twiki_check_content mw_dir_11/Main_Page.mw Main_Page\n"> ) } ) (C {(test_expect_success)} {(SQ <"Git clone works with the shallow option with a delete page">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage foo \"1st revision, will be deleted\" false &&\n"> <"\twiki_editpage bar \"1st revision, should be cloned\" false &&\n"> <"\twiki_editpage nyan \"1st revision, should not be cloned\" false &&\n"> <"\twiki_editpage nyan \"2nd revision, should be cloned\" false &&\n"> <"\twiki_delete_page foo &&\n"> <"\tgit -c remote.origin.shallow=true clone \\\n"> <"\t\tmediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_12 &&\n"> <"\ttest_contains_N_files mw_dir_12 3 &&\n"> <"\ttest_path_is_file mw_dir_12/Nyan.mw &&\n"> <"\ttest_path_is_missing mw_dir_12/Foo.mw &&\n"> <"\ttest_path_is_file mw_dir_12/Bar.mw &&\n"> <"\ttest_path_is_file mw_dir_12/Main_Page.mw &&\n"> <"\t(\n"> <"\t\tcd mw_dir_12 &&\n"> <"\t\ttest $(git log --oneline Nyan.mw | wc -l) -eq 1 &&\n"> <"\t\ttest $(git log --oneline Bar.mw | wc -l) -eq 1 &&\n"> <"\t\ttest $(git log --oneline Main_Page.mw | wc -l ) -eq 1\n"> <"\t) &&\n"> <"\twiki_check_content mw_dir_12/Nyan.mw Nyan &&\n"> <"\twiki_check_content mw_dir_12/Bar.mw Bar &&\n"> <"\twiki_check_content mw_dir_12/Main_Page.mw Main_Page\n"> ) } ) (C {(test_expect_success)} {(SQ <"Test of fetching a category">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage Foo \"I will be cloned\" false -c=Category &&\n"> <"\twiki_editpage Bar \"Meet me on the repository\" false -c=Category &&\n"> <"\twiki_editpage Dummy \"I will not come\" false &&\n"> <"\twiki_editpage BarWrong \"I will stay online only\" false -c=NotCategory &&\n"> <"\tgit clone -c remote.origin.categories=\"Category\" \\\n"> <"\t\tmediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_13 &&\n"> <"\twiki_getallpage ref_page_13 Category &&\n"> <"\ttest_diff_directories mw_dir_13 ref_page_13\n"> ) } ) (C {(test_expect_success)} {(SQ <"Test of resistance to modification of category on wiki for clone">)} { (SQ <"\n"> <"\twiki_reset &&\n"> <"\twiki_editpage Tobedeleted \"this page will be deleted\" false -c=Catone &&\n"> <"\twiki_editpage Tobeedited \"this page will be modified\" false -c=Catone &&\n"> < "\twiki_editpage Normalone \"this page wont be modified and will be on git\" false -c=Catone &&\n" > <"\twiki_editpage Notconsidered \"this page will not appear on local\" false &&\n"> < "\twiki_editpage Othercategory \"this page will not appear on local\" false -c=Cattwo &&\n" > <"\twiki_editpage Tobeedited \"this page have been modified\" true -c=Catone &&\n"> <"\twiki_delete_page Tobedeleted\n"> <"\tgit clone -c remote.origin.categories=\"Catone\" \\\n"> <"\t\tmediawiki::"> ) (DQ ($ VSub_Name "$WIKI_URL")) (SQ <" mw_dir_14 &&\n"> <"\twiki_getallpage ref_page_14 Catone &&\n"> <"\ttest_diff_directories mw_dir_14 ref_page_14\n"> ) } ) (C {(test_done)}) ] )