@@ -20,6 +20,7 @@ import (
20
20
"fmt"
21
21
"io"
22
22
"net/http"
23
+ "runtime"
23
24
"strings"
24
25
"testing"
25
26
"time"
@@ -28,6 +29,7 @@ import (
28
29
"github.com/arduino/go-paths-helper"
29
30
"github.com/stretchr/testify/require"
30
31
"go.bug.st/testifyjson/requirejson"
32
+ "go.lsp.dev/uri"
31
33
"gopkg.in/src-d/go-git.v4"
32
34
"gopkg.in/src-d/go-git.v4/plumbing/object"
33
35
)
@@ -1400,3 +1402,34 @@ func TestInstallWithZipPathMultipleLibraries(t *testing.T) {
1400
1402
require .DirExists (t , wifiInstallDir .String ())
1401
1403
require .DirExists (t , bleInstallDir .String ())
1402
1404
}
1405
+
1406
+ func TestInstallWithGitUrlLocalFileUri (t * testing.T ) {
1407
+ if runtime .GOOS == "windows" {
1408
+ t .Skip ("Using a file uri as git url doesn't work on Windows, " +
1409
+ "this must be removed when this issue is fixed: https://github.com/go-git/go-git/issues/247" )
1410
+ }
1411
+
1412
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
1413
+ defer env .CleanUp ()
1414
+
1415
+ envVar := cli .GetDefaultEnv ()
1416
+ envVar ["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL" ] = "true"
1417
+
1418
+ libInstallDir := cli .SketchbookDir ().Join ("libraries" , "WiFi101" )
1419
+ // Verifies library is not installed
1420
+ require .NoDirExists (t , libInstallDir .String ())
1421
+
1422
+ // Clone repository locally
1423
+ gitUrl := "https://github.com/arduino-libraries/WiFi101.git"
1424
+ repoDir := cli .SketchbookDir ().Join ("WiFi101" )
1425
+ _ , err := git .PlainClone (repoDir .String (), false , & git.CloneOptions {
1426
+ URL : gitUrl ,
1427
+ })
1428
+ require .NoError (t , err )
1429
+
1430
+ _ , _ , err = cli .RunWithCustomEnv (envVar , "lib" , "install" , "--git-url" , uri .New (repoDir .String ()).Filename ())
1431
+ require .NoError (t , err )
1432
+
1433
+ // Verifies library is installed
1434
+ require .DirExists (t , libInstallDir .String ())
1435
+ }
0 commit comments