class NativeURLTestCase( unittest.TestCase ):
def testurl_decode( self ):
- """[URL] Test url_decode"""
- native_libvlc_test.url_decode_test()
+ """[URL] Test url_decode and base64"""
+ native_libvlc_test.url_test()
DEF_METHOD( vlm_test, "Test VLM" )
DEF_METHOD( timers_test, "Test timers" )
DEF_METHOD( i18n_atof_test, "Test i18n_atof" )
- DEF_METHOD( url_decode_test, "URL decoding" )
+ DEF_METHOD( url_test, "URL decoding" )
DEF_METHOD( chains_test, "Test building of chains" )
DEF_METHOD( gui_chains_test, "Test interactions between chains and GUI" )
DEF_METHOD( psz_chains_test, "Test building of chain strings" )
/* Stats */
PyObject *timers_test( PyObject *self, PyObject *args );
-PyObject *url_decode_test( PyObject *self, PyObject *args );
+PyObject *url_test( PyObject *self, PyObject *args );
PyObject *i18n_atof_test( PyObject *self, PyObject *args );
#include <vlc/vlc.h>
#include "vlc_url.h"
-PyObject * test_decode (const char *in, const char *out)
+typedef char * (*conv_t ) (const char *);
+
+PyObject * test (conv_t f, const char *in, const char *out)
{
char *res;
printf ("\"%s\" -> \"%s\" ?\n", in, out);
- res = decode_URI_duplicate (in);
- ASSERT( res != NULL, "" );
- if (res == NULL)
- exit (1);
-
+ res = f(in);
+ ASSERT( res != NULL, "NULL result" );
ASSERT( strcmp( res, out ) == NULL, "" );
Py_INCREF( Py_None );
return Py_None;
}
-PyObject *url_decode_test( PyObject *self, PyObject *args )
+static inline PyObject * test_decode( const char *in, const char *out)
+{
+ return test( decode_URI_duplicate, in, out );
+}
+
+static inline PyObject* test_b64( const char *in, const char *out )
+{
+ return test( vlc_b64_encode, in, out );
+}
+
+PyObject *url_test( PyObject *self, PyObject *args )
{
printf( "\n" );
if( !test_decode ("this_should_not_be_modified_1234",
if(!test_decode ("%C1%94%C3%a9l%c3%A9vision",
"??élévision") ) return NULL; /* overlong */
+ /* Base 64 tests */
+ test_b64 ("", "");
+ test_b64 ("d", "ZA==");
+ test_b64 ("ab", "YQG=");
+ test_b64 ("abc", "YQGI");
+ test_b64 ("abcd", "YQGIZA==");
+
Py_INCREF( Py_None);
return Py_None;
}