blob: f739912d6e509ffa8ba4924d4e18e2ae57a41ccf [file] [log] [blame]
// 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/foundation.dart';
import 'package:flutter/rendering.dart';
import '../flutter_test_alternative.dart';
import 'rendering_tester.dart';
class RealRoot extends AbstractNode {
RealRoot(this.child) {
if (child != null)
adoptChild(child);
}
final RenderObject child;
@override
void redepthChildren() {
if (child != null)
redepthChild(child);
}
@override
void attach(Object owner) {
super.attach(owner);
child?.attach(owner as PipelineOwner);
}
@override
void detach() {
super.detach();
child?.detach();
}
@override
PipelineOwner get owner => super.owner as PipelineOwner;
void layout() {
child?.layout(BoxConstraints.tight(const Size(500.0, 500.0)));
}
}
void main() {
test('non-RenderObject roots', () {
RenderPositionedBox child;
final RealRoot root = RealRoot(
child = RenderPositionedBox(
alignment: Alignment.center,
child: RenderSizedBox(const Size(100.0, 100.0)),
),
);
root.attach(PipelineOwner());
child.scheduleInitialLayout();
root.layout();
child.markNeedsLayout();
root.layout();
});
}