summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAntti Ajanki <antti.ajanki@iki.fi>2013-08-08 17:16:00 +0300
committerAntti Ajanki <antti.ajanki@iki.fi>2013-08-08 17:16:00 +0300
commitb3bdb5e6a1515c938fec0661bb56f4b39538195c (patch)
tree874355a1601ed713a8e4dc4e78806862f369fd63 /tests
parent78e8b44d32231a45086fe3c7e1465e8bb60b871c (diff)
downloadvdr-plugin-webvideo-b3bdb5e6a1515c938fec0661bb56f4b39538195c.tar.gz
vdr-plugin-webvideo-b3bdb5e6a1515c938fec0661bb56f4b39538195c.tar.bz2
Combine quvi and external downloader pipes into a pipe that reads a
menu written by an external shell script (src/menuscripts). Add YLE Areena as an example script (TODO: downloading rtmp streams).
Diffstat (limited to 'tests')
-rw-r--r--tests/libwebvi_tests.c6
-rw-r--r--tests/pipe_tests.c47
-rw-r--r--tests/pipe_tests.h4
3 files changed, 57 insertions, 0 deletions
diff --git a/tests/libwebvi_tests.c b/tests/libwebvi_tests.c
index 0e50e15..e1168a8 100644
--- a/tests/libwebvi_tests.c
+++ b/tests/libwebvi_tests.c
@@ -70,6 +70,12 @@ int main(int argc, char** argv)
test_pipe_state_not_chaning_after_finished);
g_test_add_func("/pipe/fdset", test_pipe_fdset);
g_test_add_func("/pipe/delete_all", test_pipe_delete_all);
+ g_test_add_func("/pipe/menu_validator_valid_menu",
+ test_pipe_menu_validator_valid_menu);
+ g_test_add_func("/pipe/menu_validator_invalid_xml",
+ test_pipe_menu_validator_invalid_xml);
+ g_test_add_func("/pipe/menu_validator_invalid_root",
+ test_pipe_menu_validator_invalid_root);
g_test_add_func("/urlutils/scheme", test_url_scheme);
g_test_add_func("/urlutils/scheme_no_scheme", test_url_scheme_no_scheme);
diff --git a/tests/pipe_tests.c b/tests/pipe_tests.c
index 0dd15ba..d61b680 100644
--- a/tests/pipe_tests.c
+++ b/tests/pipe_tests.c
@@ -8,6 +8,12 @@
#define TEST_FD1 1
#define TEST_FD2 2
+#define MENU_VALID "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" \
+ "<wvmenu><title>Test menu</title></wvmenu>"
+#define INVALID_XML ">> this & is not XML >>"
+#define MENU_INVALID_ROOT "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" \
+ "<invalid></invalid>"
+
typedef struct CountingPipe {
PipeComponent p;
size_t bytes;
@@ -244,3 +250,44 @@ void testpipe_delete2(PipeComponent *component) {
delete2_called = TRUE;
free(self);
}
+
+void test_pipe_menu_validator_valid_menu() {
+ PipeMenuValidator *pipe = pipe_menu_validator_create();
+ g_assert(pipe);
+
+ pipe_component_append((PipeComponent *)pipe, MENU_VALID,
+ strlen(MENU_VALID));
+ pipe_component_finished((PipeComponent *)pipe, WEBVISTATE_FINISHED_OK);
+ RequestState state = pipe_component_get_state((PipeComponent *)pipe);
+ g_assert(state == WEBVISTATE_FINISHED_OK);
+
+ pipe_delete_full((PipeComponent *)pipe);
+}
+
+void test_pipe_menu_validator_invalid_xml() {
+ PipeMenuValidator *pipe = pipe_menu_validator_create();
+ g_assert(pipe);
+
+ pipe_component_append((PipeComponent *)pipe, INVALID_XML,
+ strlen(INVALID_XML));
+ pipe_component_finished((PipeComponent *)pipe, WEBVISTATE_FINISHED_OK);
+ RequestState state = pipe_component_get_state((PipeComponent *)pipe);
+ g_assert((state != WEBVISTATE_NOT_FINISHED) &&
+ (state != WEBVISTATE_FINISHED_OK));
+
+ pipe_delete_full((PipeComponent *)pipe);
+}
+
+void test_pipe_menu_validator_invalid_root() {
+ PipeMenuValidator *pipe = pipe_menu_validator_create();
+ g_assert(pipe);
+
+ pipe_component_append((PipeComponent *)pipe, MENU_INVALID_ROOT,
+ strlen(MENU_INVALID_ROOT));
+ pipe_component_finished((PipeComponent *)pipe, WEBVISTATE_FINISHED_OK);
+ RequestState state = pipe_component_get_state((PipeComponent *)pipe);
+ g_assert((state != WEBVISTATE_NOT_FINISHED) &&
+ (state != WEBVISTATE_FINISHED_OK));
+
+ pipe_delete_full((PipeComponent *)pipe);
+}
diff --git a/tests/pipe_tests.h b/tests/pipe_tests.h
index 4ed02c2..0f0cf26 100644
--- a/tests/pipe_tests.h
+++ b/tests/pipe_tests.h
@@ -9,4 +9,8 @@ void test_pipe_state_not_chaning_after_finished();
void test_pipe_delete_all();
void test_pipe_fdset();
+void test_pipe_menu_validator_valid_menu();
+void test_pipe_menu_validator_invalid_xml();
+void test_pipe_menu_validator_invalid_root();
+
#endif // PIPE_TESTS_H