22// for details. All rights reserved. Use of this source code is governed by a
33// BSD-style license that can be found in the LICENSE file.
44
5+ import 'package:gcloud/db.dart' ;
56import 'package:http/testing.dart' ;
67import 'package:test/test.dart' ;
78
89import 'package:pub_dartlang_org/frontend/backend.dart' ;
9- import 'package:pub_dartlang_org/frontend/models.dart' ;
1010import 'package:pub_dartlang_org/frontend/name_tracker.dart' ;
11- import 'package:pub_dartlang_org/frontend/search_service.dart' ;
1211import 'package:pub_dartlang_org/frontend/static_files.dart' ;
13- import 'package:pub_dartlang_org/shared/analyzer_client.dart' ;
14- import 'package:pub_dartlang_org/shared/search_service.dart' ;
1512import 'package:pub_dartlang_org/shared/search_client.dart' ;
13+ import 'package:pub_dartlang_org/search/updater.dart' ;
1614
1715import '../../shared/handlers_test_utils.dart' ;
1816import '../../shared/test_models.dart' ;
1917import '../../shared/test_services.dart' ;
20- import '../mocks.dart' ;
2118
2219import '_utils.dart' ;
2320
@@ -89,34 +86,21 @@ void main() {
8986 expect (content, contains ('helium is a Dart package' ));
9087 });
9188
92- tScopedTest ('/packages?page=2' , () async {
93- registerSearchService (SearchServiceMock (
94- (SearchQuery query) {
95- expect (query.offset, 10 );
96- expect (query.limit, pageSize);
97- expect (query.platform, isNull);
98- expect (query.isAd, isFalse);
99- return SearchResultPage (query, 1 , [
100- PackageView .fromModel (
101- package: foobarPackage,
102- version: foobarStablePV,
103- scoreCard: null )
104- ]);
105- },
106- ));
107- final backend = BackendMock (
108- lookupPackageFun: (packageName) {
109- return packageName == foobarPackage.name ? foobarPackage : null ;
110- },
111- lookupLatestVersionsFun: (List <Package > packages) {
112- expect (packages.length, 1 );
113- expect (packages.first, foobarPackage);
114- return [foobarStablePV];
115- },
89+ testWithServices ('/packages?page=2' , () async {
90+ for (int i = 0 ; i < 15 ; i++ ) {
91+ final bundle = generateBundle ('pkg$i ' , ['1.0.0' ]);
92+ await dbService.commit (inserts: [bundle.package, ...bundle.versions]);
93+ }
94+ await indexUpdater.updateAllPackages ();
95+
96+ final names = ['pkg0' , 'pkg3' , 'pkg10' ];
97+ final list = await backend.latestPackageVersions (offset: 10 );
98+ expect (list.map ((p) => p.package).toList (), containsAll (names));
99+
100+ await expectHtmlResponse (
101+ await issueGet ('/packages?page=2' ),
102+ present: names.map ((name) => '/packages/$name ' ).toList (),
116103 );
117- registerBackend (backend);
118- registerAnalyzerClient (AnalyzerClientMock ());
119- await expectHtmlResponse (await issueGet ('/packages?page=2' ));
120104 });
121105
122106 testWithServices ('/flutter/packages' , () async {
@@ -135,34 +119,29 @@ void main() {
135119 );
136120 });
137121
138- tScopedTest ('/flutter/packages&page=2' , () async {
139- registerSearchService (SearchServiceMock (
140- (SearchQuery query) {
141- expect (query.offset, 10 );
142- expect (query.limit, pageSize);
143- expect (query.platform, 'flutter' );
144- expect (query.isAd, isFalse);
145- return SearchResultPage (query, 1 , [
146- PackageView .fromModel (
147- package: foobarPackage,
148- version: foobarStablePV,
149- scoreCard: null )
150- ]);
151- },
122+ testWithServices ('/flutter/packages&page=2' , () async {
123+ for (int i = 0 ; i < 15 ; i++ ) {
124+ final bundle = generateBundle (
125+ 'pkg$i ' ,
126+ ['1.0.0' ],
127+ pubspecExtraContent: '''
128+ flutter:
129+ plugin:
130+ class: SomeClass
131+ ''' ,
132+ );
133+ await dbService.commit (inserts: [bundle.package, ...bundle.versions]);
134+ }
135+ await indexUpdater.updateAllPackages ();
136+
137+ final names = ['pkg0' , 'pkg3' , 'pkg10' ];
138+ final list = await backend.latestPackageVersions (offset: 10 );
139+ expect (list.map ((p) => p.package).toList (), containsAll (names));
140+
141+ print (await expectHtmlResponse (
142+ await issueGet ('/packages?page=2' ),
143+ present: names.map ((name) => '/packages/$name ' ).toList (),
152144 ));
153- final backend = BackendMock (
154- lookupPackageFun: (packageName) {
155- return packageName == foobarPackage.name ? foobarPackage : null ;
156- },
157- lookupLatestVersionsFun: (List <Package > packages) {
158- expect (packages.length, 1 );
159- expect (packages.first, foobarPackage);
160- return [foobarStablePV];
161- },
162- );
163- registerBackend (backend);
164- registerAnalyzerClient (AnalyzerClientMock ());
165- await expectHtmlResponse (await issueGet ('/flutter/packages?page=2' ));
166145 });
167146 });
168147}
0 commit comments