01: /* ====================================================================
02: Licensed to the Apache Software Foundation (ASF) under one or more
03: contributor license agreements. See the NOTICE file distributed with
04: this work for additional information regarding copyright ownership.
05: The ASF licenses this file to You under the Apache License, Version 2.0
06: (the "License"); you may not use this file except in compliance with
07: the License. You may obtain a copy of the License at
08:
09: http://www.apache.org/licenses/LICENSE-2.0
10:
11: Unless required by applicable law or agreed to in writing, software
12: distributed under the License is distributed on an "AS IS" BASIS,
13: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: See the License for the specific language governing permissions and
15: limitations under the License.
16: ==================================================================== */
17:
18: package org.apache.poi.hslf.usermodel;
19:
20: import junit.framework.TestCase;
21: import org.apache.poi.hslf.*;
22: import org.apache.poi.hslf.model.*;
23: import org.apache.poi.hslf.record.ParentAwareRecord;
24: import org.apache.poi.hslf.record.Record;
25: import org.apache.poi.hslf.record.RecordContainer;
26:
27: /**
28: * Tests that the record setup done by SlideShow
29: * has worked correctly
30: * Note: most recent record stuff has its own test
31: *
32: * @author Nick Burch (nick at torchbox dot com)
33: */
34: public class TestRecordSetup extends TestCase {
35: // SlideShow primed on the test data
36: private SlideShow ss;
37: private HSLFSlideShow hss;
38:
39: public TestRecordSetup() throws Exception {
40: String dirname = System.getProperty("HSLF.testdata.path");
41: String filename = dirname + "/basic_test_ppt_file.ppt";
42: hss = new HSLFSlideShow(filename);
43: ss = new SlideShow(hss);
44: }
45:
46: public void testHandleParentAwareRecords() throws Exception {
47: Record[] records = hss.getRecords();
48: for (int i = 0; i < records.length; i++) {
49: ensureParentAware(records[i], null);
50: }
51: }
52:
53: private void ensureParentAware(Record r, RecordContainer parent) {
54: if (r instanceof ParentAwareRecord) {
55: ParentAwareRecord pr = (ParentAwareRecord) r;
56: assertEquals(parent, pr.getParentRecord());
57: }
58: if (r instanceof RecordContainer) {
59: RecordContainer rc = (RecordContainer) r;
60: Record[] children = rc.getChildRecords();
61: for (int i = 0; i < children.length; i++) {
62: ensureParentAware(children[i], rc);
63: }
64: }
65: }
66: }
|