• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 
18 package com.android.settings.search;
19 
20 import android.content.Context;
21 import android.graphics.drawable.Drawable;
22 
23 import com.android.settings.R;
24 import com.android.settings.SettingsRobolectricTestRunner;
25 import com.android.settings.TestConfig;
26 import com.android.settings.search2.IntentPayload;
27 import com.android.settings.search2.ResultPayload;
28 import com.android.settings.search2.SearchResult;
29 import com.android.settings.search2.SearchResult.Builder;
30 
31 import org.junit.Before;
32 import org.junit.Test;
33 import org.junit.runner.RunWith;
34 import org.robolectric.annotation.Config;
35 import org.robolectric.shadows.ShadowApplication;
36 
37 import java.util.ArrayList;
38 
39 import static com.google.common.truth.Truth.assertThat;
40 
41 @RunWith(SettingsRobolectricTestRunner.class)
42 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
43 public class SearchResultBuilderTest {
44 
45     private Builder mBuilder;
46     private String mTitle;
47     private String mSummary;
48     private ArrayList<String> mBreadcrumbs;
49     private int mRank;
50     private ResultPayload mResultPayload;
51     private Drawable mIcon;
52 
53     @Before
setUp()54     public void setUp() {
55         mBuilder = new Builder();
56         mTitle = "title";
57         mSummary = "summary";
58         mBreadcrumbs = new ArrayList<>();
59         mRank = 3;
60         mResultPayload = new IntentPayload(null);
61 
62         final Context context = ShadowApplication.getInstance().getApplicationContext();
63         mIcon = context.getDrawable(R.drawable.ic_search_history);
64     }
65 
66     @Test
testAllInfo_BuildSearchResult()67     public void testAllInfo_BuildSearchResult() {
68         mBuilder.addTitle(mTitle)
69                 .addSummary(mSummary)
70                 .addRank(mRank)
71                 .addBreadcrumbs(mBreadcrumbs)
72                 .addIcon(mIcon)
73                 .addPayload(mResultPayload);
74         SearchResult result = mBuilder.build();
75 
76         assertThat(result).isNotNull();
77         assertThat(result.title).isEqualTo(mTitle);
78         assertThat(result.summary).isEqualTo(mSummary);
79         assertThat(result.rank).isEqualTo(mRank);
80         assertThat(result.breadcrumbs).isEqualTo(mBreadcrumbs);
81         assertThat(result.icon).isEqualTo(mIcon);
82         assertThat(result.payload).isEqualTo(mResultPayload);
83     }
84 
85     @Test
testNoTitle_BuildSearchResultException()86     public void testNoTitle_BuildSearchResultException() {
87         mBuilder.addSummary(mSummary)
88                 .addRank(mRank)
89                 .addBreadcrumbs(mBreadcrumbs)
90                 .addIcon(mIcon)
91                 .addPayload(mResultPayload);
92 
93         SearchResult result = null;
94         try {
95             result = mBuilder.build();
96         } catch (IllegalArgumentException e) {
97             // passes.
98         }
99         assertThat(result).isNull();
100     }
101 
102     @Test
testNoRank_BuildSearchResult_pass()103     public void testNoRank_BuildSearchResult_pass() {
104         mBuilder.addTitle(mTitle)
105                 .addSummary(mSummary)
106                 .addBreadcrumbs(mBreadcrumbs)
107                 .addIcon(mIcon)
108                 .addPayload(mResultPayload);
109 
110         assertThat(mBuilder.build()).isNotNull();
111     }
112 
113     @Test
testNoIcon_BuildSearchResult_pass()114     public void testNoIcon_BuildSearchResult_pass() {
115         mBuilder.addTitle(mTitle)
116                 .addSummary(mSummary)
117                 .addRank(mRank)
118                 .addBreadcrumbs(mBreadcrumbs)
119                 .addPayload(mResultPayload);
120 
121         assertThat(mBuilder.build()).isNotNull();
122     }
123 
124     @Test
testNoPayload_BuildSearchResultException()125     public void testNoPayload_BuildSearchResultException() {
126         mBuilder.addTitle(mTitle)
127                 .addSummary(mSummary)
128                 .addRank(mRank)
129                 .addBreadcrumbs(mBreadcrumbs)
130                 .addIcon(mIcon);
131 
132         SearchResult result = null;
133         try {
134             result = mBuilder.build();
135         } catch (IllegalArgumentException e) {
136             // passes.
137         }
138         assertThat(result).isNull();
139     }
140 }
141 
142 
143