hunk.code_window: }
   func scheduleExportCmdF(command *cobra.Command, args []string) error {
   	a, err := InitDBCommandContextCobra(command)
   	if err != nil {
   		return err
   	}
   	defer a.Srv().Shutdown()
  
hunk.labels: keep keep keep replace keep keep keep keep
hunk.after_edit: 	a, err := InitDBCommandContextCobra(command, app.SkipPostInitialization())
  
hunk.file_path: cmd/mattermost/commands/export.go
hunk.type: replace
file: // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
  // See LICENSE.txt for license information.
  
  package model
  
  import (
  	"strings"
  	"testing"
  
  	"github.com/stretchr/testify/require"
  )
  
  func TestIncomingWebhookIsValid(t *testing.T) {
  	o := IncomingWebhook{}
  
  	require.NotNil(t, o.IsValid())
  
  	o.Id = NewId()
  	require.NotNil(t, o.IsValid())
  
  	o.CreateAt = GetMillis()
  	require.NotNil(t, o.IsValid())
  
  	o.UpdateAt = GetMillis()
  	require.NotNil(t, o.IsValid())
  
  	o.UserId = "123"
  	require.NotNil(t, o.IsValid())
  
  	o.UserId = NewId()
  	require.NotNil(t, o.IsValid())
  
  	o.ChannelId = "123"
  	require.NotNil(t, o.IsValid())
  
  	o.ChannelId = NewId()
  	require.NotNil(t, o.IsValid())
  
  	o.TeamId = "123"
  	require.NotNil(t, o.IsValid())
  
  	o.TeamId = NewId()
  	require.Nil(t, o.IsValid())
  
  	o.DisplayName = strings.Repeat("1", 65)
  	require.NotNil(t, o.IsValid())
  
  	o.DisplayName = strings.Repeat("1", 64)
  	require.Nil(t, o.IsValid())
  
  	o.Description = strings.Repeat("1", 501)
  	require.NotNil(t, o.IsValid())
  
  	o.Description = strings.Repeat("1", 500)
  	require.Nil(t, o.IsValid())
  
  	o.Username = strings.Repeat("1", 65)
  	require.NotNil(t, o.IsValid())
  
  	o.Username = strings.Repeat("1", 64)
  	require.Nil(t, o.IsValid())
  
  	o.IconURL = strings.Repeat("1", 1025)
  	require.NotNil(t, o.IsValid())
  
  	o.IconURL = strings.Repeat("1", 1024)
  	require.Nil(t, o.IsValid())
  }
  
  func TestIncomingWebhookPreSave(t *testing.T) {
  	o := IncomingWebhook{}
  	o.PreSave()
  }
  
  func TestIncomingWebhookPreUpdate(t *testing.T) {
  	o := IncomingWebhook{}
  	o.PreUpdate()
  }
  
  func TestIncomingWebhookRequestFromJSON(t *testing.T) {
  	texts := []string{
  		`this is a test`,
  		`this is a test
  			that contains a newline and tabs`,
  		`this is a test \"foo
  			that contains a newline and tabs`,
  		`this is a test \"foo\"
  			that contains a newline and tabs`,
  		`this is a test \"foo\"
  		\"			that contains a newline and tabs`,
  		`this is a test \"foo\"
  
  		\"			that contains a newline and tabs
  		`,
  	}
  
  	for _, text := range texts {
  		// build a sample payload with the text
  		payload := `{
          "text": "` + text + `",
          "attachments": [
              {
                  "fallback": "` + text + `",
  
                  "color": "#36a64f",
  
                  "pretext": "` + text + `",
  
                  "author_name": "` + text + `",
                  "author_link": "http://flickr.com/bobby/",
                  "author_icon": "http://flickr.com/icons/bobby.jpg",
  
                  "title": "` + text + `",
                  "title_link": "https://api.slack.com/",
  
                  "text": "` + text + `",
  
                  "fields": [
                      {
                          "title": "` + text + `",
                          "value": "` + text + `",
                          "short": false
                      }
                  ],
  
                  "image_url": "http://my-website.com/path/to/image.jpg",
                  "thumb_url": "http://example.com/path/to/thumb.png"
              }
          ]
      }`
  
  		// try to create an IncomingWebhookRequest from the payload
  		data := strings.NewReader(payload)
  		iwr, _ := IncomingWebhookRequestFromJSON(data)
  
  		// After it has been decoded, the JSON string won't contain the escape char anymore
  		expected := strings.Replace(text, `\"`, `"`, -1)
  		require.NotNil(t, iwr)
  		require.Equal(t, expected, iwr.Text)
  
  		attachment := iwr.Attachments[0]
  		require.Equal(t, expected, attachment.Text)
  	}
  }
  
  func TestIncomingWebhookNullArrayItems(t *testing.T) {
  	payload := `{"attachments":[{"fields":[{"title":"foo","value":"bar","short":true}, null]}, null]}`
  	iwr, _ := IncomingWebhookRequestFromJSON(strings.NewReader(payload))
  	require.NotNil(t, iwr)
  	require.Len(t, iwr.Attachments, 1)
  	require.Len(t, iwr.Attachments[0].Fields, 1)
  }
  