[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog libbase/URL.cpp testsuite/libba...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog libbase/URL.cpp testsuite/libba... |
Date: |
Thu, 31 Jan 2008 21:38:41 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 08/01/31 21:38:41
Modified files:
. : ChangeLog
libbase : URL.cpp
testsuite/libbase: URLTest.cpp
Log message:
Fix parsing of urls with an ".swf" component in the query string.
This is basically a revert of this patch by bjacques:
http://cvs.savannah.gnu.org/viewvc/gnash/libbase/URL.cpp?root=gnash&r1=1.26&r2=1.27
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5541&r2=1.5542
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/URL.cpp?cvsroot=gnash&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/libbase/URLTest.cpp?cvsroot=gnash&r1=1.17&r2=1.18
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5541
retrieving revision 1.5542
diff -u -b -r1.5541 -r1.5542
--- ChangeLog 31 Jan 2008 20:54:41 -0000 1.5541
+++ ChangeLog 31 Jan 2008 21:38:40 -0000 1.5542
@@ -1,5 +1,13 @@
2008-01-31 Sandro Santilli <address@hidden>
+ * libbase/URL.cpp: don't threat ".swf" strings as any special.
+ Fixes parsing of urls with ".swf" in the query string.
+ * testsuite/libbase/URLTest.cpp: add test for query strings
+ containing an ".swf" component, like many from
+ http://foo.keybit.net/~strk/mapview/.
+
+2008-01-31 Sandro Santilli <address@hidden>
+
* gui/Player.cpp (load_movie): still add the acutual filename, if
given, in the list of local sandboxes, or "gnash -u http://remote
./local.swf" won't work (the konqueror plugin uses that format,
Index: libbase/URL.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/URL.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- libbase/URL.cpp 21 Jan 2008 20:55:44 -0000 1.42
+++ libbase/URL.cpp 31 Jan 2008 21:38:41 -0000 1.43
@@ -353,14 +353,6 @@
return;
}
- size_t swfpos = _path.rfind(".swf");
- if (swfpos != string::npos && swfpos > qmpos)
- {
- // If the questionmark precedes the file suffix, we're not
dealing with a
- // query string.
- return;
- }
-
_querystring = _path.substr(qmpos+1);
// update _path
Index: testsuite/libbase/URLTest.cpp
===================================================================
RCS file: /sources/gnash/gnash/testsuite/libbase/URLTest.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- testsuite/libbase/URLTest.cpp 21 Jan 2008 23:26:50 -0000 1.17
+++ testsuite/libbase/URLTest.cpp 31 Jan 2008 21:38:41 -0000 1.18
@@ -143,19 +143,17 @@
check_equals (u16.querystring(), "option1=23&option2=65");
check_equals (u16.anchor(), "anchor");
check_equals (u16.str(),
"file:///my/path/?option1=23&option2=65#anchor");
-
URL u17("/test?.swf");
check_equals (u17.protocol() , "file" );
check_equals (u17.hostname() , "" );
- check_equals (u17.path() , "/test?.swf" );
+ check_equals (u17.path() , "/test" );
check_equals (u17.str() , "file:///test?.swf" );
- check_equals (u17.querystring() , "" );
+ check_equals (u17.querystring() , ".swf" );
// Test that this doesn't crash.
URL u18("file:///loadMovieTest.swf");
URL u19("file://../../test.swf", u18);
-
// Test query_string parsing
map<string, string> qs;
URL::parse_querystring(u13.querystring(), qs);
@@ -168,6 +166,28 @@
check_equals (qs["option1"], "23");
check_equals (qs["option2"], "65");
+ // Test query string with embedded path to an .swf
+ // Broken by:
+ //
htp://cvs.savannah.gnu.org/viewvc/gnash/libbase/URL.cpp?root=gnash&r1=1.26&r2=1.27
+ //
+ URL
u20("http://www.gnu.org/~gnash/movie.swf?arg1=600&arg2=path/to/file.swf&arg3=320x200");
+ check_equals(u20.protocol(), "http");
+ check_equals(u20.hostname(), "www.gnu.org");
+ check_equals(u20.path(), "/~gnash/movie.swf");
+ check_equals(u20.querystring(),
"arg1=600&arg2=path/to/file.swf&arg3=320x200");
+ qs.clear();
+ URL::parse_querystring(u20.querystring(), qs);
+ check_equals(qs["arg1"], "600");
+ check_equals(qs["arg2"], "path/to/file.swf");
+ check_equals(qs["arg3"], "320x200");
+
+ // Test relative resolution when query string contains slashes
+ URL u21("movie2.swf", u20);
+ check_equals (u21.protocol(), "http");
+ check_equals (u21.querystring(), "");
+ check_equals (u21.path(), "/~gnash/movie2.swf");
+ check_equals (u21.hostname(), "www.gnu.org");
+
// TODO: Samba paths
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog libbase/URL.cpp testsuite/libba...,
Sandro Santilli <=