/*
 * Copyright (C) 2015 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.messaging.util;

import androidx.test.filters.SmallTest;

import com.android.messaging.BugleTestCase;

/*
 * Class for testing YouTubeUtil.
 */
@SmallTest
public class YouTubeUtilTest extends BugleTestCase {
    public void testGetYoutubePreviewImageLink() {
        final String videoId = "dQw4w9WgXcQ";
        final String videoThumbnailUrl = YouTubeUtil.YOUTUBE_STATIC_THUMBNAIL_PREFIX + videoId
                + YouTubeUtil.YOUTUBE_STATIC_THUMBNAIL_END;

        // Check known valid youtube links to videos
        assertEquals(
                YouTubeUtil.getYoutubePreviewImageLink("http://www.youtube.com/watch?v=" + videoId),
                videoThumbnailUrl);
        assertEquals(
                YouTubeUtil.getYoutubePreviewImageLink("https://www.youtube.com/watch?v=" + videoId
                        + "&feature=youtu.be"), videoThumbnailUrl);
        assertEquals(
                YouTubeUtil.getYoutubePreviewImageLink("www.youtube.com/watch?v=" + videoId),
                videoThumbnailUrl);
        assertEquals(
                YouTubeUtil.getYoutubePreviewImageLink("http://www.youtube.com/embed/" + videoId),
                videoThumbnailUrl);
        assertEquals(YouTubeUtil.getYoutubePreviewImageLink("http://www.youtube.com/v/" + videoId),
                videoThumbnailUrl);
        assertEquals(
                YouTubeUtil.getYoutubePreviewImageLink("https://youtube.googleapis.com/v/"
                        + videoId), videoThumbnailUrl);
        assertEquals(
                YouTubeUtil.getYoutubePreviewImageLink("http://www.youtube.com/apiplayer?video_id="
                        + videoId), videoThumbnailUrl);
        // This is the type of links that are used as shares from YouTube and will be the most
        // likely case that we see
        assertEquals(YouTubeUtil.getYoutubePreviewImageLink("http://youtu.be/" + videoId),
                videoThumbnailUrl);

        // Try links that shouldn't work
        assertNull(YouTubeUtil.getYoutubePreviewImageLink("http://www.youtube.com"));
    }
}