Unverified Commit cd834774 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[framework] work around to load self packages from packages/ (#111350)

parent 81fd386a
......@@ -964,6 +964,7 @@ Future<void> _runFrameworkTests() async {
await _runDartTest(path.join(flutterRoot, 'dev', 'conductor', 'core'), forceSingleCore: true);
// TODO(gspencergoog): Remove the exception for fatalWarnings once https://github.com/flutter/flutter/pull/91127 has landed.
await _runFlutterTest(path.join(flutterRoot, 'dev', 'integration_tests', 'android_semantics_testing'), fatalWarnings: false);
await _runFlutterTest(path.join(flutterRoot, 'dev', 'integration_tests', 'ui'));
await _runFlutterTest(path.join(flutterRoot, 'dev', 'manual_tests'));
await _runFlutterTest(path.join(flutterRoot, 'dev', 'tools', 'vitool'));
await _runFlutterTest(path.join(flutterRoot, 'dev', 'tools', 'gen_defaults'));
......
This diff was suppressed by a .gitattributes entry.
......@@ -79,5 +79,7 @@ dev_dependencies:
flutter:
uses-material-design: true
assets:
- assets/foo.png
# PUBSPEC CHECKSUM: 8eeb
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
// Regression test for https://github.com/flutter/flutter/issues/111285
void main() {
testWidgets('Can load asset from same package without error', (WidgetTester tester) async {
await tester.pumpWidget(MaterialApp(home: Scaffold(body: Image.asset('assets/foo.png', package: 'integration_ui'))));
await tester.pumpAndSettle();
// If this asset couldn't be loaded, the exception message would be
// "asset failed to load"
expect(tester.takeException().toString(), contains('Invalid image data'));
});
}
......@@ -266,6 +266,22 @@ class PlatformAssetBundle extends CachingAssetBundle {
final ByteData bytes = await load(key);
return ui.ImmutableBuffer.fromUint8List(bytes.buffer.asUint8List());
}
bool debugUsePlatformChannel = false;
assert(() {
// dart:io is safe to use here since we early return for web
// above. If that code is changed, this needs to be gaurded on
// web presence. Override how assets are loaded in tests so that
// the old loader behavior that allows tests to load assets from
// the current package using the package prefix.
if (Platform.environment.containsKey('UNIT_TEST_ASSETS')) {
debugUsePlatformChannel = true;
}
return true;
}());
if (debugUsePlatformChannel) {
final ByteData bytes = await load(key);
return ui.ImmutableBuffer.fromUint8List(bytes.buffer.asUint8List());
}
try {
return await ui.ImmutableBuffer.fromAsset(key);
} on Exception {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment