@@ -1316,3 +1316,56 @@ func TestInstallGitUrlAndZipPathFlagsVisibility(t *testing.T) {
1316
1316
require .NoError (t , err )
1317
1317
require .Contains (t , string (stdout ), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk." )
1318
1318
}
1319
+
1320
+ func TestInstallWithZipPath (t * testing.T ) {
1321
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
1322
+ defer env .CleanUp ()
1323
+
1324
+ // Initialize configs to enable --zip-path flag
1325
+ envVar := cli .GetDefaultEnv ()
1326
+ envVar ["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL" ] = "true"
1327
+ _ , _ , err := cli .RunWithCustomEnv (envVar , "config" , "init" , "--dest-dir" , "." )
1328
+ require .NoError (t , err )
1329
+
1330
+ // Download a specific lib version
1331
+ // Download library
1332
+ url := "https://github.com/arduino-libraries/AudioZero/archive/refs/tags/1.1.1.zip"
1333
+ zipPath := cli .DownloadDir ().Join ("libraries" , "AudioZero.zip" )
1334
+ require .NoError (t , zipPath .Parent ().MkdirAll ())
1335
+ downloadLib (t , url , zipPath )
1336
+
1337
+ libInstallDir := cli .SketchbookDir ().Join ("libraries" , "AudioZero-1.1.1" )
1338
+ // Verifies library is not already installed
1339
+ require .NoDirExists (t , libInstallDir .String ())
1340
+
1341
+ // Test zip-path install
1342
+ stdout , _ , err := cli .Run ("lib" , "install" , "--zip-path" , zipPath .String ())
1343
+ require .NoError (t , err )
1344
+ require .Contains (t , string (stdout ), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk." )
1345
+
1346
+ // Verifies library is installed in expected path
1347
+ require .DirExists (t , libInstallDir .String ())
1348
+ files , err := libInstallDir .ReadDirRecursive ()
1349
+ require .NoError (t , err )
1350
+ require .Contains (t , files , libInstallDir .Join ("examples" , "SimpleAudioPlayerZero" , "SimpleAudioPlayerZero.ino" ))
1351
+ require .Contains (t , files , libInstallDir .Join ("src" , "AudioZero.h" ))
1352
+ require .Contains (t , files , libInstallDir .Join ("src" , "AudioZero.cpp" ))
1353
+ require .Contains (t , files , libInstallDir .Join ("keywords.txt" ))
1354
+ require .Contains (t , files , libInstallDir .Join ("library.properties" ))
1355
+ require .Contains (t , files , libInstallDir .Join ("README.adoc" ))
1356
+
1357
+ // Reinstall library
1358
+ _ , _ , err = cli .Run ("lib" , "install" , "--zip-path" , zipPath .String ())
1359
+ require .NoError (t , err )
1360
+
1361
+ // Verifies library remains installed
1362
+ require .DirExists (t , libInstallDir .String ())
1363
+ files , err = libInstallDir .ReadDirRecursive ()
1364
+ require .NoError (t , err )
1365
+ require .Contains (t , files , libInstallDir .Join ("examples" , "SimpleAudioPlayerZero" , "SimpleAudioPlayerZero.ino" ))
1366
+ require .Contains (t , files , libInstallDir .Join ("src" , "AudioZero.h" ))
1367
+ require .Contains (t , files , libInstallDir .Join ("src" , "AudioZero.cpp" ))
1368
+ require .Contains (t , files , libInstallDir .Join ("keywords.txt" ))
1369
+ require .Contains (t , files , libInstallDir .Join ("library.properties" ))
1370
+ require .Contains (t , files , libInstallDir .Join ("README.adoc" ))
1371
+ }
0 commit comments