@@ -1394,3 +1394,56 @@ func TestInstallGitUrlAndZipPathFlagsVisibility(t *testing.T) {
1394
1394
require .NoError (t , err )
1395
1395
require .Contains (t , string (stdout ), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk." )
1396
1396
}
1397
+
1398
+ func TestInstallWithZipPath (t * testing.T ) {
1399
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
1400
+ defer env .CleanUp ()
1401
+
1402
+ // Initialize configs to enable --zip-path flag
1403
+ envVar := cli .GetDefaultEnv ()
1404
+ envVar ["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL" ] = "true"
1405
+ _ , _ , err := cli .RunWithCustomEnv (envVar , "config" , "init" , "--dest-dir" , "." )
1406
+ require .NoError (t , err )
1407
+
1408
+ // Download a specific lib version
1409
+ // Download library
1410
+ url := "https://github.com/arduino-libraries/AudioZero/archive/refs/tags/1.1.1.zip"
1411
+ zipPath := cli .DownloadDir ().Join ("libraries" , "AudioZero.zip" )
1412
+ require .NoError (t , zipPath .Parent ().MkdirAll ())
1413
+ downloadLib (t , url , zipPath )
1414
+
1415
+ libInstallDir := cli .SketchbookDir ().Join ("libraries" , "AudioZero-1.1.1" )
1416
+ // Verifies library is not already installed
1417
+ require .NoDirExists (t , libInstallDir .String ())
1418
+
1419
+ // Test zip-path install
1420
+ stdout , _ , err := cli .Run ("lib" , "install" , "--zip-path" , zipPath .String ())
1421
+ require .NoError (t , err )
1422
+ require .Contains (t , string (stdout ), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk." )
1423
+
1424
+ // Verifies library is installed in expected path
1425
+ require .DirExists (t , libInstallDir .String ())
1426
+ files , err := libInstallDir .ReadDirRecursive ()
1427
+ require .NoError (t , err )
1428
+ require .Contains (t , files , libInstallDir .Join ("examples" , "SimpleAudioPlayerZero" , "SimpleAudioPlayerZero.ino" ))
1429
+ require .Contains (t , files , libInstallDir .Join ("src" , "AudioZero.h" ))
1430
+ require .Contains (t , files , libInstallDir .Join ("src" , "AudioZero.cpp" ))
1431
+ require .Contains (t , files , libInstallDir .Join ("keywords.txt" ))
1432
+ require .Contains (t , files , libInstallDir .Join ("library.properties" ))
1433
+ require .Contains (t , files , libInstallDir .Join ("README.adoc" ))
1434
+
1435
+ // Reinstall library
1436
+ _ , _ , err = cli .Run ("lib" , "install" , "--zip-path" , zipPath .String ())
1437
+ require .NoError (t , err )
1438
+
1439
+ // Verifies library remains installed
1440
+ require .DirExists (t , libInstallDir .String ())
1441
+ files , err = libInstallDir .ReadDirRecursive ()
1442
+ require .NoError (t , err )
1443
+ require .Contains (t , files , libInstallDir .Join ("examples" , "SimpleAudioPlayerZero" , "SimpleAudioPlayerZero.ino" ))
1444
+ require .Contains (t , files , libInstallDir .Join ("src" , "AudioZero.h" ))
1445
+ require .Contains (t , files , libInstallDir .Join ("src" , "AudioZero.cpp" ))
1446
+ require .Contains (t , files , libInstallDir .Join ("keywords.txt" ))
1447
+ require .Contains (t , files , libInstallDir .Join ("library.properties" ))
1448
+ require .Contains (t , files , libInstallDir .Join ("README.adoc" ))
1449
+ }
0 commit comments