1 // Copyright 2020 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.chrome.browser.video_tutorials.test;
6 
7 import org.chromium.base.Callback;
8 import org.chromium.chrome.browser.video_tutorials.FeatureType;
9 import org.chromium.chrome.browser.video_tutorials.Language;
10 import org.chromium.chrome.browser.video_tutorials.Tutorial;
11 import org.chromium.chrome.browser.video_tutorials.VideoTutorialService;
12 
13 import java.util.ArrayList;
14 import java.util.Arrays;
15 import java.util.List;
16 
17 /** A video tutorial service implementation for tests. */
18 public class TestVideoTutorialService implements VideoTutorialService {
19     public static final Language HINDI = new Language("hi", "hindi", "हिंदी");
20     public static final Language TAMIL = new Language("ta", "Tamil", "தமிழ்");
21     public static final Language ENGLISH = new Language("en", "English", "English");
22 
23     private final List<Tutorial> mTutorials = new ArrayList<>();
24     private final List<String> mLanguages = new ArrayList<>();
25     private String mPreferredLocale;
26 
TestVideoTutorialService()27     public TestVideoTutorialService() {
28         initializeLanguages();
29         mPreferredLocale = HINDI.locale;
30         initializeTutorialList();
31     }
32 
33     @Override
getTutorials(Callback<List<Tutorial>> callback)34     public void getTutorials(Callback<List<Tutorial>> callback) {
35         callback.onResult(mTutorials);
36     }
37 
38     @Override
getTutorial(int featureType, Callback<Tutorial> callback)39     public void getTutorial(int featureType, Callback<Tutorial> callback) {
40         if (featureType == FeatureType.SUMMARY) {
41             Tutorial summary = new Tutorial(FeatureType.SUMMARY, "Videos on how to use chrome",
42                     "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.mp4",
43                     "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png",
44                     "https://www.gstatic.com/chrome/video-tutorials/gif/sample_anim.gif",
45                     "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png",
46                     "caption url", "share url", 25);
47             callback.onResult(summary);
48             return;
49         }
50 
51         for (Tutorial tutorial : mTutorials) {
52             if (tutorial.featureType == featureType) callback.onResult(tutorial);
53         }
54     }
55 
56     @Override
getSupportedLanguages()57     public List<String> getSupportedLanguages() {
58         return mLanguages;
59     }
60 
61     @Override
getAvailableLanguagesForTutorial(int feature)62     public List<String> getAvailableLanguagesForTutorial(int feature) {
63         return mLanguages;
64     }
65 
66     @Override
getPreferredLocale()67     public String getPreferredLocale() {
68         return mPreferredLocale;
69     }
70 
71     @Override
setPreferredLocale(String locale)72     public void setPreferredLocale(String locale) {
73         mPreferredLocale = locale;
74     }
75 
getTestLanguages()76     public List<String> getTestLanguages() {
77         return mLanguages;
78     }
79 
getTestTutorials()80     public List<Tutorial> getTestTutorials() {
81         return mTutorials;
82     }
83 
initializeTutorialList()84     private void initializeTutorialList() {
85         mTutorials.add(new Tutorial(FeatureType.CHROME_INTRO, "Introduction to chrome",
86                 "https://www.gstatic.com/chrome/video-tutorials/webm/1_Search_english.mp4",
87                 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png",
88                 "https://www.gstatic.com/chrome/video-tutorials/gif/sample_anim.gif",
89                 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png",
90                 "caption url", "share url", 25));
91 
92         mTutorials.add(new Tutorial(FeatureType.DOWNLOAD,
93                 "How to use Google Chrome's download functionality",
94                 "https://www.gstatic.com/chrome/video-tutorials/webm/1_Search_english.mp4",
95                 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png",
96                 "https://www.gstatic.com/chrome/video-tutorials/gif/sample_anim.gif",
97                 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png",
98                 "caption url", "share url", 35));
99 
100         mTutorials.add(new Tutorial(FeatureType.SEARCH,
101                 "How to efficiently search with Google Chrome",
102                 "https://www.gstatic.com/chrome/video-tutorials/webm/1_Search_english.mp4",
103                 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png",
104                 "https://www.gstatic.com/chrome/video-tutorials/gif/sample_anim.gif",
105                 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png",
106                 "caption url", "share url", 335));
107     }
108 
initializeLanguages()109     private void initializeLanguages() {
110         mLanguages.add("hi");
111         mLanguages.add("ta");
112         mLanguages.add("en");
113     }
114 
115     /** Initialized to a set of test languages. */
initializeTestLanguages(String[] languages)116     public void initializeTestLanguages(String[] languages) {
117         mLanguages.clear();
118         mLanguages.addAll(Arrays.asList(languages));
119     }
120 }
121