Beispiel #1
0
        public void GetGoogleSearches_ValidQuery_ReturnsCorrectInfo()
        {
            var query   = "dog";
            var lang    = "en";
            var service = new GetGoogleService(query, lang);
            List <SearchResult> results = service.GetGoogleSearches().Result;

            Assert.AreNotEqual(0, results.Count);
            SearchResult first = results[0];

            StringAssert.Contains(first.Header.ToLower(), query);
            StringAssert.Contains(first.Link, query);
            StringAssert.Contains(first.Link, "http");
            StringAssert.Contains(first.Description.ToLower(), query);

            // Test next page results (not empty, different from first page, valid result)
            var nextPageService = new GetGoogleService(query, lang, start: 10);
            List <SearchResult> nextPageResults = nextPageService.GetGoogleSearches().Result;

            Assert.AreNotEqual(0, nextPageResults.Count);
            CollectionAssert.AreNotEqual(results, nextPageResults);
            SearchResult nextFirst = results[0];

            StringAssert.Contains(nextFirst.Header.ToLower(), query);
            StringAssert.Contains(nextFirst.Link, query);
            StringAssert.Contains(nextFirst.Link, "http");
            StringAssert.Contains(nextFirst.Description.ToLower(), query);
        }
        public async Task DoWork()
        {
            if (_queryUnchanged)
            {
                // Reuse old results
                Messenger.Base.Send(new OldQueryMsg());
                viewService.ShowView();
            }
            else
            {
                // Flush old results waiting for new results
                Messenger.Base.Send(new NewQueryMsg(Query));

                GetGoogleService service = new GetGoogleService(Query, _langCode.LangToCode(Language));
                var results = await service.GetGoogleSearches();

                if (results == null || results.Count == 0)
                {
                    throw new NoResultException();
                }

                // Send new results and show results view
                Messenger.Base.Send(results);
                _queryUnchanged = true;
                viewService.ShowView();
            }
        }
        // New page of search result needed so fetch it and send to requester
        private async void OnFetchResultsMsgReceived(FetchResultsMsg m)
        {
            GetGoogleService service = new GetGoogleService(m.query, _langCode.LangToCode(Language), m.start);
            var results = await service.GetGoogleSearches();

            Messenger.Base.Send(results);
            _queryUnchanged = true;
        }
Beispiel #4
0
        public void GetGoogleSearches_DifferentLanguage_ReturnsDifferentResults()
        {
            var query      = "dog";
            var langEng    = "en";
            var serviceEng = new GetGoogleService(query, langEng);
            List <SearchResult> resultsEng = serviceEng.GetGoogleSearches().Result;

            var langJap    = "jp";
            var serviceJap = new GetGoogleService(query, langJap);
            List <SearchResult> resultsJap = serviceJap.GetGoogleSearches().Result;

            CollectionAssert.AreNotEqual(resultsEng, resultsJap);
        }
Beispiel #5
0
        public void GetGoogleSearches_VideoQuery_ReturnsCorrectInfo()
        {
            var query   = "aimer youtube";
            var service = new GetGoogleService(query, "auto");
            List <SearchResult> results = service.GetGoogleSearches().Result;

            // Test at least one result is a youtube video
            foreach (var res in results)
            {
                if (res.Video != null)
                {
                    StringAssert.Contains(res.Video.Link, "youtube");
                    StringAssert.Contains(res.Video.Link, "embed");
                    return;
                }
            }
            Assert.Fail();
        }