Mercurial
view media_processor/media_processor_test.c @ 217:7ef4c9d2a72d hg-web
[DO NOT PUSH] Random values.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Sun, 25 Jan 2026 10:44:04 -0800 |
| parents | |
| children |
line wrap: on
line source
#include "media_processor.h" #include <stdio.h> #include <assert.h> #include <string.h> void test_detect_type() { printf("Testing media_detect_type...\n"); // Images assert(media_detect_type("photo.jpg") == MEDIA_TYPE_IMAGE); assert(media_detect_type("photo.JPEG") == MEDIA_TYPE_IMAGE); assert(media_detect_type("image.png") == MEDIA_TYPE_IMAGE); assert(media_detect_type("animation.gif") == MEDIA_TYPE_IMAGE); assert(media_detect_type("modern.webp") == MEDIA_TYPE_IMAGE); assert(media_detect_type("apple.heic") == MEDIA_TYPE_IMAGE); // Videos assert(media_detect_type("video.mp4") == MEDIA_TYPE_VIDEO); assert(media_detect_type("movie.mov") == MEDIA_TYPE_VIDEO); assert(media_detect_type("clip.avi") == MEDIA_TYPE_VIDEO); assert(media_detect_type("stream.mkv") == MEDIA_TYPE_VIDEO); assert(media_detect_type("web.webm") == MEDIA_TYPE_VIDEO); // Audio assert(media_detect_type("song.mp3") == MEDIA_TYPE_AUDIO); assert(media_detect_type("audio.wav") == MEDIA_TYPE_AUDIO); assert(media_detect_type("music.flac") == MEDIA_TYPE_AUDIO); // Unknown assert(media_detect_type("document.pdf") == MEDIA_TYPE_UNKNOWN); assert(media_detect_type("archive.zip") == MEDIA_TYPE_UNKNOWN); assert(media_detect_type("noextension") == MEDIA_TYPE_UNKNOWN); printf(" PASSED\n"); } void test_get_extension() { printf("Testing media_get_extension...\n"); assert(strcmp(media_get_extension("file.jpg"), ".jpg") == 0); assert(strcmp(media_get_extension("path/to/file.mp4"), ".mp4") == 0); assert(strcmp(media_get_extension("multiple.dots.png"), ".png") == 0); assert(media_get_extension("noextension") == NULL); assert(media_get_extension(NULL) == NULL); printf(" PASSED\n"); } void test_path_safety() { printf("Testing media_path_is_safe...\n"); // Safe paths assert(media_path_is_safe("file.jpg") == true); assert(media_path_is_safe("folder/file.jpg") == true); assert(media_path_is_safe("a/b/c/file.jpg") == true); // Unsafe paths assert(media_path_is_safe("../file.jpg") == false); assert(media_path_is_safe("folder/../file.jpg") == false); assert(media_path_is_safe("/absolute/path.jpg") == false); assert(media_path_is_safe(NULL) == false); printf(" PASSED\n"); } void test_generate_id() { printf("Testing media_generate_id...\n"); char* id1 = media_generate_id(); char* id2 = media_generate_id(); assert(id1 != NULL); assert(id2 != NULL); assert(strlen(id1) > 0); assert(strlen(id2) > 0); assert(strcmp(id1, id2) != 0); // Should be unique free(id1); free(id2); printf(" PASSED\n"); } void test_default_opts() { printf("Testing media_processor_opts_default...\n"); MediaProcessorOpts opts = media_processor_opts_default("./output"); assert(opts.output_dir != NULL); assert(strcmp(opts.output_dir, "./output") == 0); assert(opts.image_quality == 80); assert(opts.video_segment_duration == 6); assert(opts.generate_thumbnail == true); printf(" PASSED\n"); } int main() { printf("\n=== Media Processor Tests ===\n\n"); test_detect_type(); test_get_extension(); test_path_safety(); test_generate_id(); test_default_opts(); printf("\n=== All tests passed! ===\n\n"); return 0; }