77 def setUp(self):
78 self._working_dir = tempfile.mkdtemp()
79 self._output_dir = os.path.join(self._working_dir, 'output')
80 self._database_dir = os.path.join(self._working_dir, 'database')
81 self._auxiliary_dir = os.path.join(self._working_dir, 'auxiliary')
82 self.assertFalse(os.path.exists(self._database_dir))
83
84
85 db = database.Database(self._database_dir)
86 os.mkdir(self._auxiliary_dir)
87 self.assertTrue(os.path.exists(self._database_dir))
88
89 content = """
90 module shapes {
91 @A1 @A2
92 interface Shape {
93 @A1 @A2 getter attribute int attr;
94 @A1 setter attribute int attr;
95 @A3 boolean op();
96 const long CONSTANT = 1;
97 getter attribute DOMString strAttr;
98 Shape create();
99 boolean compare(Shape s);
100 Rectangle createRectangle();
101 void addLine(lines::Line line);
102 void someDartType(File file);
103 void someUnidentifiedType(UnidentifiableType t);
104 };
105 };
106
107 module rectangles {
108 @A3
109 interface Rectangle : @A3 shapes::Shape {
110 void someTemplatedType(List<Shape> list);
111 };
112 };
113
114 module lines {
115 @A1
116 interface Line : shapes::Shape {
117 };
118 };
119 """
120
121 parser = idlparser.IDLParser(idlparser.FREMONTCUT_SYNTAX)
122 ast = parser.parse(content)
123 idl_file = idlnode.IDLFile(ast)
124 for interface in idl_file.interfaces:
125 db.AddInterface(interface)
126 db.Save()
127
128 self.assertTrue(self._InDatabase('Shape'))
129 self.assertTrue(self._InDatabase('Rectangle'))
130 self.assertTrue(self._InDatabase('Line'))
131
132 self._database = database.Database(self._database_dir)
133 self._generator = dartgenerator.DartGenerator(self._auxiliary_dir,
134 '../templates', 'test')
135