Files
sdk/tests/language/src/StaticFieldTest.dart
T
dgrove@google.com ebe439410d Initial checkin.
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-05 06:22:36 +00:00

77 lines
1.9 KiB
Dart

// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Dart test program for testing setting/getting/initializing static fields.
class First {
First() {}
static var a;
static var b;
static final int c = 1;
static setValues() {
a = 24;
b = 10;
return a + b + c;
}
}
class Second extends First {
static void testUnqualifiedStatic() {
setValues(); // static function in superclass.
Expect.equals(24, a); // static field in superclass.
Expect.equals(24, First.a); // same field as above.
}
}
class InitializerTest {
static var one;
static var two = 2;
static var three = 2;
static checkValueOfThree() {
// We need to keep this check separate to prevent three from
// getting initialized before the += is executed.
Expect.equals(3, three);
}
static void testStaticFieldInitialization() {
Expect.equals(null, one);
Expect.equals(2, two);
one = 11;
two = 22;
Expect.equals(11, one);
Expect.equals(22, two);
// Assignment operators exercise a different code path. Make sure
// that initialization works here as well.
three += 1;
checkValueOfThree();
}
}
class StaticFieldTest {
static testMain() {
First.a = 3;
First.b = First.a;
Expect.equals(3, First.a);
Expect.equals(First.a, First.b);
First.b = (First.a = 10);
Expect.equals(10, First.a);
Expect.equals(10, First.b);
First.b = First.a = 15;
Expect.equals(15, First.a);
Expect.equals(15, First.b);
Expect.equals(35, First.setValues());
Expect.equals(24, First.a);
Expect.equals(10, First.b);
Second.testUnqualifiedStatic();
}
}
main() {
StaticFieldTest.testMain();
InitializerTest.testStaticFieldInitialization();
}