@@ -3,6 +3,7 @@ package main
33import (
44 "log"
55 "os"
6+ "os/exec"
67 "testing"
78 "time"
89
@@ -266,3 +267,37 @@ func TestUninstallAllImages(t *testing.T) {
266267 resp := dashboard .MqttSendAndReceiveTimeout (t , "/status/uninstall" , "{}" , 5 * time .Minute )
267268 assert .True (t , resp == "INFO: OK\n " )
268269}
270+
271+ func TestUninstallNetworkManager (t * testing.T ) {
272+ dashboard := newMqttTestClientLocal ()
273+ defer dashboard .Close ()
274+
275+ s := NewStatus (Config {}, nil , nil , "" )
276+ s .mqttClient = mqtt .NewClient (mqtt .NewClientOptions ().AddBroker ("tcp://localhost:1883" ).SetClientID ("arduino-connector" ))
277+ if token := s .mqttClient .Connect (); token .Wait () && token .Error () != nil {
278+ log .Fatal (token .Error ())
279+ }
280+ defer s .mqttClient .Disconnect (100 )
281+
282+ subscribeTopic (s .mqttClient , "0" , "/status/uninstall/post" , s , s .Uninstall , false )
283+
284+ c := exec .Command ("bash" , "-c" , "apt-get install -y network-manager" )
285+ _ , err := c .CombinedOutput ()
286+ assert .True (t , err == nil )
287+
288+ defer func () {
289+ c := exec .Command ("bash" , "-c" , "apt-get remove -y network-manager" )
290+ _ , err := c .CombinedOutput ()
291+ assert .True (t , err == nil )
292+ }()
293+
294+ err = createConfig ()
295+ assert .True (t , err == nil )
296+
297+ resp := dashboard .MqttSendAndReceiveTimeout (t , "/status/uninstall" , "{}" , 5 * time .Minute )
298+ assert .True (t , resp == "INFO: OK\n " )
299+
300+ c = exec .Command ("dpkg-query" , "-l network-manager; echo $?" )
301+ _ , err = c .CombinedOutput ()
302+ assert .True (t , err != nil )
303+ }
0 commit comments