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