5
5
namespace PhpOffice \PhpSpreadsheetTests ;
6
6
7
7
use PhpOffice \PhpSpreadsheet \Spreadsheet ;
8
+ use PHPUnit \Framework \Attributes \DataProvider ;
8
9
use PHPUnit \Framework \TestCase ;
9
10
10
11
class SpreadsheetCopyCloneTest extends TestCase
@@ -25,7 +26,8 @@ protected function tearDown(): void
25
26
}
26
27
}
27
28
28
- public function runTests (string $ type ): void
29
+ #[DataProvider('providerCopyClone ' )]
30
+ public function testCopyClone (string $ type ): void
29
31
{
30
32
$ this ->spreadsheet = new Spreadsheet ();
31
33
$ sheet = $ this ->spreadsheet ->getActiveSheet ();
@@ -41,12 +43,15 @@ public function runTests(string $type): void
41
43
$ sheet ->getCell ('B1 ' )->setValue ('this is b1 ' );
42
44
$ sheet ->getCell ('B2 ' )->setValue ('this is b2 ' );
43
45
self ::assertSame ('font1 ' , $ sheet ->getStyle ('A1 ' )->getFont ()->getName ());
46
+ $ sheet ->setSelectedCells ('A3 ' );
44
47
if ($ type === 'copy ' ) {
45
48
$ this ->spreadsheet2 = $ this ->spreadsheet ->copy ();
46
49
} else {
47
50
$ this ->spreadsheet2 = clone $ this ->spreadsheet ;
48
51
}
52
+ self ::assertSame ('A3 ' , $ sheet ->getSelectedCells ());
49
53
$ copysheet = $ this ->spreadsheet2 ->getActiveSheet ();
54
+ self ::assertSame ('A3 ' , $ copysheet ->getSelectedCells ());
50
55
self ::assertSame ('original ' , $ copysheet ->getTitle ());
51
56
$ copysheet ->setTitle ('unoriginal ' );
52
57
self ::assertSame ('original ' , $ sheet ->getTitle ());
@@ -77,13 +82,30 @@ public function runTests(string $type): void
77
82
self ::assertSame ('this is b2 ' , $ copysheet ->getCell ('B2 ' )->getValue ());
78
83
}
79
84
80
- public function testClone (): void
85
+ #[DataProvider('providerCopyClone ' )]
86
+ public function testCopyCloneActiveSheet (string $ type ): void
81
87
{
82
- $ this ->runTests ('clone ' );
88
+ $ this ->spreadsheet = new Spreadsheet ();
89
+ $ sheet0 = $ this ->spreadsheet ->getActiveSheet ();
90
+ $ sheet1 = $ this ->spreadsheet ->createSheet ();
91
+ $ sheet2 = $ this ->spreadsheet ->createSheet ();
92
+ $ sheet3 = $ this ->spreadsheet ->createSheet ();
93
+ $ sheet4 = $ this ->spreadsheet ->createSheet ();
94
+ $ sheet3 ->getStyle ('B1 ' )->getFont ()->setName ('whatever ' );
95
+ $ this ->spreadsheet ->setActiveSheetIndex (2 );
96
+ if ($ type === 'copy ' ) {
97
+ $ this ->spreadsheet2 = $ this ->spreadsheet ->copy ();
98
+ } else {
99
+ $ this ->spreadsheet2 = clone $ this ->spreadsheet ;
100
+ }
101
+ self ::assertSame (2 , $ this ->spreadsheet2 ->getActiveSheetIndex ());
83
102
}
84
103
85
- public function testCopy (): void
104
+ public static function providerCopyClone (): array
86
105
{
87
- $ this ->runTests ('copy ' );
106
+ return [
107
+ ['copy ' ],
108
+ ['clone ' ],
109
+ ];
88
110
}
89
111
}
0 commit comments