[Xfce4-commits] r25005 - in squeeze/trunk: libsqueeze tests/zip

Stephan Arts stephan at xfce.org
Wed Feb 21 17:14:15 CET 2007


Author: stephan
Date: 2007-02-21 16:14:15 +0000 (Wed, 21 Feb 2007)
New Revision: 25005

Modified:
   squeeze/trunk/libsqueeze/archive-support-zip.c
   squeeze/trunk/tests/zip/test-extract.c
   squeeze/trunk/tests/zip/test-zip-add.pl
   squeeze/trunk/tests/zip/test-zip-extract.pl
Log:
Fix extract for zip
Changed test-suites (actually testing something)



Modified: squeeze/trunk/libsqueeze/archive-support-zip.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-support-zip.c	2007-02-21 15:05:21 UTC (rev 25004)
+++ squeeze/trunk/libsqueeze/archive-support-zip.c	2007-02-21 16:14:15 UTC (rev 25005)
@@ -217,9 +217,11 @@
 		   !g_strcasecmp((gchar *)thunar_vfs_mime_info_get_name(archive->mime_info), "application/zip"))
 		{
 			gchar *files = lsq_concat_filenames(filenames);
+			gchar *options = g_strdup("");
 
-			archive_command = lsq_archive_command_new("", archive, "zip -r %1$s %2$s", FALSE);
+			archive_command = lsq_archive_command_new("", archive, "zip %3$s -r %1$s %2$s", FALSE);
 			g_object_set_data(G_OBJECT(archive_command), "files", g_strdup(files));
+			g_object_set_data(G_OBJECT(archive_command), "options", options);
 			g_free(files);
 			lsq_archive_command_run(archive_command);
 			g_object_unref(archive_command);
@@ -254,9 +256,9 @@
 
 			gchar *options = g_strconcat(" -d ", dest_path, NULL);
 
-			archive_command = lsq_archive_command_new("", archive, "zip -o %1$s %2$s %3$s", TRUE);
-			g_object_set(archive_command, "files", files, NULL);
-			g_object_set(archive_command, "options", options, NULL);
+			archive_command = lsq_archive_command_new("", archive, "unzip -o %1$s %2$s %3$s", TRUE);
+			g_object_set_data(G_OBJECT(archive_command), "files", files);
+			g_object_set_data(G_OBJECT(archive_command), "options", options);
 			lsq_archive_command_run(archive_command);
 			g_object_unref(archive_command);
 			g_free(dest_path);
@@ -289,7 +291,7 @@
 			gchar *files = lsq_concat_filenames(filenames);
 
 			archive_command = lsq_archive_command_new("", archive, "zip -d %1$s %2$s", FALSE);
-			g_object_set(archive_command, "files", files, NULL);
+			g_object_set_data(G_OBJECT(archive_command), "files", files);
 			lsq_archive_command_run(archive_command);
 			g_object_unref(archive_command);
 			g_free(files);

Modified: squeeze/trunk/tests/zip/test-extract.c
===================================================================
--- squeeze/trunk/tests/zip/test-extract.c	2007-02-21 15:05:21 UTC (rev 25004)
+++ squeeze/trunk/tests/zip/test-extract.c	2007-02-21 16:14:15 UTC (rev 25005)
@@ -20,26 +20,81 @@
 #include <thunar-vfs/thunar-vfs.h>
 #include <libsqueeze/libsqueeze.h>
 
-int main()
+GMainLoop *loop = NULL;
+gint ret_val = 0;
+gchar *filename = NULL;
+gchar *dest_path = NULL;
+
+static GOptionEntry entries[] =
 {
-	g_type_init();
+	{	"extract", 'e', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_STRING, &filename,
+		NULL,
+		NULL
+	},
+	{	"destination", 'd', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_STRING, &dest_path,
+		NULL,
+		NULL
+	},
+	{ NULL }
+};
 
-	LSQArchive *archive = NULL;
-	gchar *current_dir = g_get_current_dir();
-	gchar *path = g_strconcat(current_dir, "/data/test.zip", NULL);
+void
+cb_command_terminated(LSQArchive *archive, GError *error)
+{
+	if(loop)
+		g_main_loop_quit(loop);
+	else
+		ret_val = 1;
+	if(error)
+	{
+		g_debug("%s", error->message);
+		ret_val = 1;
+	}
+}
 
+int main(int argc, char **argv)
+{
+	g_type_init();
 	thunar_vfs_init();
 	lsq_init();
 
-	lsq_new_archive(path, TRUE, "application/zip", &archive);
+	LSQArchive *archive = NULL;
+	LSQArchiveSupport *archive_support = NULL;
+	GSList *files = NULL;
+	gint i = 0;
 
+	GOptionContext *opt_context = g_option_context_new("test-add -n <archive> [filename ...]");
+	g_option_context_add_main_entries(opt_context, entries, NULL);
+	g_option_context_parse (opt_context, &argc, &argv, NULL);
 
+	if(filename == NULL)
+	{
+		g_print("Filename is not specified\n");
+		return 1;
+	}
+
+	lsq_open_archive(filename, &archive);
+	archive_support = lsq_get_support_for_mimetype(lsq_archive_get_mimetype(archive));
+
+	g_signal_connect(G_OBJECT(archive), "command-terminated", G_CALLBACK(cb_command_terminated), NULL);
+
+	for(i = 1; i < argc; i++)
+	{
+		files = g_slist_prepend(files, argv[i]);
+	}
+
+	if(lsq_archive_support_extract(archive_support, archive, dest_path, files))
+		ret_val = 1;
+
+	if(ret_val == 0)
+	{
+		loop = g_main_loop_new(NULL, FALSE);
+		g_main_loop_run(loop);
+	}
+
 	lsq_close_archive(archive);
 
 	lsq_shutdown();
 	thunar_vfs_shutdown();
-
-	g_free(path);
-	g_free(current_dir);
-	return 0;
+	return ret_val;
 }

Modified: squeeze/trunk/tests/zip/test-zip-add.pl
===================================================================
--- squeeze/trunk/tests/zip/test-zip-add.pl	2007-02-21 15:05:21 UTC (rev 25004)
+++ squeeze/trunk/tests/zip/test-zip-add.pl	2007-02-21 16:14:15 UTC (rev 25005)
@@ -1,23 +1,21 @@
 #!/usr/bin/env perl
 chomp($cwd = `pwd`);
-$test_file = "$cwd/data/test.zip";
+$test_archive = "$cwd/data/test-extract.zip";
 
 print "========================================";
 print "========================================\n";
 print "Target archive:\n";
-print "$test_file\n";
+print "$test_archive\n";
 
- at args = ("./test-add", "-n", $test_file, "$cwd/data/1.txt");
-system(@args) == 0
-	or die "system @args failed: $?";
-
-unlink $test_file;
-
- at args = ("./test-add", "-n", $test_file, "$cwd/data/2.txt");
+ at args = ("./test-add", "-n", $test_archive, "$cwd/data/2.txt");
 system(@args) != 0
 	or die "system @args should fail: $?";
 
 unlink $test_file;
 
+ at args = ("./test-add", "-n", $test_archive, "$cwd/data/1.txt");
+system(@args) == 0
+	or die "system @args failed: $?";
+
 print "========================================";
 print "========================================\n";

Modified: squeeze/trunk/tests/zip/test-zip-extract.pl
===================================================================
--- squeeze/trunk/tests/zip/test-zip-extract.pl	2007-02-21 15:05:21 UTC (rev 25004)
+++ squeeze/trunk/tests/zip/test-zip-extract.pl	2007-02-21 16:14:15 UTC (rev 25005)
@@ -1,2 +1,21 @@
 #!/usr/bin/env perl
-exit 1;
+chomp($cwd = `pwd`);
+$test_archive = "$cwd/data/test-extract.zip";
+
+print "========================================";
+print "========================================\n";
+print "Target archive:\n";
+print "$test_archive\n";
+
+unlink "$cwd/data/extract/1.txt";
+
+ at args = ("./test-extract", "-d", "$cwd/data/extract", "-e", $test_archive);
+system(@args) == 0
+	or die "system @args failed: $?";
+
+#die "A" unless -e "$cwd/data/extract/1.txt";
+
+unlink $test_archive;
+
+print "========================================";
+print "========================================\n";



More information about the Xfce4-commits mailing list