13e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert/* 23e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Copyright (C) 2009 The Android Open Source Project 33e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 43e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 53e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * you may not use this file except in compliance with the License. 63e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * You may obtain a copy of the License at 73e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 83e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 93e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 103e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Unless required by applicable law or agreed to in writing, software 113e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 123e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * See the License for the specific language governing permissions and 143e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * limitations under the License. 153e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 163e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 173e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertpackage com.android.quicksearchbox; 183e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 193e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport android.test.AndroidTestCase; 20f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringertimport android.test.MoreAsserts; 213e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport android.test.suitebuilder.annotation.MediumTest; 223e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 23f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringertimport java.util.Arrays; 243e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport java.util.Collection; 253e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 263e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert/** 27fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Tests for {@link SearchableCorpora}. 283e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 293e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 303e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert@MediumTest 31883c1bf364e38c5b133afb55f8493a14b65f4dd4Bjorn Bringertpublic class SearchableCorporaTest extends AndroidTestCase { 323e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 3396fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert protected SearchSettings mSettings; 3496fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert 35fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert protected SearchableCorpora mCorpora; 363e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 37f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert private static final MockCorpus CORPUS_1 = new MockCorpus(MockSource.SOURCE_1); 38f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert private static final MockCorpus CORPUS_DISABLED = new MockCorpus(MockSource.SOURCE_2); 39f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert private static final MockCorpus CORPUS_NOT_IN_ALL = new MockCorpus(MockSource.SOURCE_3) { 40f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert @Override 41f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert public boolean includeInAll() { 42f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert return false; 43f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert } 44f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert }; 45f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert private static final MockCorpus CORPUS_WEB = new MockCorpus(MockSource.WEB_SOURCE); 46f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert 473e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert @Override 483e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert protected void setUp() throws Exception { 493e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert super.setUp(); 503e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 51f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert mSettings = new MockSearchSettings() { 52f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert @Override 53f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert public boolean isCorpusEnabled(Corpus corpus) { 54f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert return !CORPUS_DISABLED.equals(corpus); 55f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert } 56f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert }; 57883c1bf364e38c5b133afb55f8493a14b65f4dd4Bjorn Bringert MockSources sources = new MockSources(); 58883c1bf364e38c5b133afb55f8493a14b65f4dd4Bjorn Bringert sources.addSource(MockSource.SOURCE_1); 59883c1bf364e38c5b133afb55f8493a14b65f4dd4Bjorn Bringert sources.addSource(MockSource.SOURCE_2); 60f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert sources.addSource(MockSource.SOURCE_3); 61f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert sources.addSource(MockSource.WEB_SOURCE); 6296fec862c3d494aebcb4e1d93589a241385a2ba7Bjorn Bringert mCorpora = new SearchableCorpora(mContext, mSettings, sources, new MockCorpusFactory()); 6321bff9bbf4286907b01d3153bff2fbd6b5ec5df8Bjorn Bringert mCorpora.update(); 643e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 653e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 66883c1bf364e38c5b133afb55f8493a14b65f4dd4Bjorn Bringert public void testGetAllCorpora() { 67f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert MoreAsserts.assertContentsInAnyOrder(mCorpora.getAllCorpora(), 68f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert CORPUS_1, CORPUS_DISABLED, CORPUS_NOT_IN_ALL, CORPUS_WEB); 69f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert } 70f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert 71f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert public void testEnabledCorpora() { 72f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert MoreAsserts.assertContentsInAnyOrder(mCorpora.getEnabledCorpora(), 73f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert CORPUS_1, CORPUS_NOT_IN_ALL, CORPUS_WEB); 74f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert } 75f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert 76f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert public void testCorporaIncludedInAll() { 77f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert MoreAsserts.assertContentsInAnyOrder(mCorpora.getCorporaInAll(), 78f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert CORPUS_1, CORPUS_WEB); 793e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 803e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 81f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert public void testGetWebCorpus() { 82f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert assertEquals(CORPUS_WEB, mCorpora.getWebCorpus()); 83883c1bf364e38c5b133afb55f8493a14b65f4dd4Bjorn Bringert } 84883c1bf364e38c5b133afb55f8493a14b65f4dd4Bjorn Bringert 85883c1bf364e38c5b133afb55f8493a14b65f4dd4Bjorn Bringert public void testGetCorpusForSource() { 86f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert assertEquals(CORPUS_1, mCorpora.getCorpusForSource(MockSource.SOURCE_1)); 87f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert assertNull(mCorpora.getCorpusForSource(new MockSource("foo"))); 883e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 893e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 90f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert public void testGetCorpus() { 91f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert assertEquals(CORPUS_WEB, mCorpora.getCorpus(CORPUS_WEB.getName())); 923e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 933e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 94f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert /** 95f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert * Mock implementation of {@link CorpusFactory}. 96f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert */ 97f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert private static class MockCorpusFactory implements CorpusFactory { 98f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert public Collection<Corpus> createCorpora(Sources sources) { 99f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert return Arrays.<Corpus>asList(CORPUS_1, CORPUS_DISABLED, CORPUS_NOT_IN_ALL, CORPUS_WEB); 100f3f70e5ae88f06ff6dabdec9e7c71a19ca1e7108Bjorn Bringert } 1013e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1023e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1033e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert} 104