. "github.com/onsi/ginkgo" . "github.com/onsi/gomega" . "github.com/onsi/gomega/gbytes" . "github.com/onsi/gomega/gexec" "github.com/cloudfoundry-incubator/cf-test-helpers/cf" "github.com/cloudfoundry-incubator/cf-test-helpers/generator" "github.com/cloudfoundry/cf-acceptance-tests/helpers" shelpers "github.com/cloudfoundry/cf-acceptance-tests/services/helpers" ) var _ = Describe("Purging service offerings", func() { var broker shelpers.ServiceBroker BeforeEach(func() { broker = shelpers.NewServiceBroker(generator.RandomName(), helpers.NewAssets().ServiceBroker, context) broker.Push() broker.Configure() broker.Create() broker.PublicizePlans() }) AfterEach(func() { broker.Destroy() }) It("removes all instances and plans of the service, then removes the service offering", func() { instanceName := "purge-offering-instance" marketplace := cf.Cf("marketplace").Wait(DEFAULT_TIMEOUT) Expect(marketplace).To(Exit(0))
. "github.com/onsi/gomega" . "github.com/onsi/gomega/gbytes" . "github.com/onsi/gomega/gexec" "github.com/cloudfoundry-incubator/cf-test-helpers/cf" "github.com/cloudfoundry-incubator/cf-test-helpers/generator" "github.com/cloudfoundry/cf-acceptance-tests/helpers" ) var _ = Describe("A running application", func() { var appName string BeforeEach(func() { appName = generator.RandomName() Expect(cf.Cf("push", appName, "-p", helpers.NewAssets().Dora).Wait(CF_PUSH_TIMEOUT)).To(Exit(0)) }) AfterEach(func() { Expect(cf.Cf("delete", appName, "-f").Wait(DEFAULT_TIMEOUT)).To(Exit(0)) }) It("can have its files inspected", func() { // Currently cannot work with multiple instances since GCF always checks instance 0 files := cf.Cf("files", appName).Wait(DEFAULT_TIMEOUT) Expect(files).To(Exit(0)) Expect(files).To(Say("app/")) files = cf.Cf("files", appName, "app/").Wait(DEFAULT_TIMEOUT) Expect(files).To(Exit(0)) Expect(files).To(Say("config.ru"))
"github.com/cloudfoundry-incubator/cf-test-helpers/cf" "github.com/cloudfoundry-incubator/cf-test-helpers/generator" "github.com/cloudfoundry/cf-acceptance-tests/helpers" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" . "github.com/onsi/gomega/gbytes" . "github.com/onsi/gomega/gexec" ) var _ = Describe("Getting instance information", func() { var appName string BeforeEach(func() { appName = generator.RandomName() Eventually(cf.Cf("push", appName, "-p", helpers.NewAssets().HelloWorld, "--no-start", "-b=ruby_buildpack"), CF_PUSH_TIMEOUT).Should(Exit(0)) Eventually(cf.Cf("set-env", appName, "CF_DIEGO_RUN_BETA", "true"), DEFAULT_TIMEOUT).Should(Exit(0)) Eventually(cf.Cf("scale", appName, "-i", "3"), DEFAULT_TIMEOUT).Should(Exit(0)) Eventually(cf.Cf("start", appName), CF_PUSH_TIMEOUT).Should(Exit(0)) }) AfterEach(func() { Eventually(cf.Cf("delete", appName, "-f"), DEFAULT_TIMEOUT).Should(Exit(0)) }) It("Retrieves instance information for cf app", func() { app := cf.Cf("app", appName).Wait(DEFAULT_TIMEOUT) Expect(app).To(Exit(0)) Expect(app).To(Say("instances: [0-3]/3")) Expect(app).To(Say("#0"))
"github.com/cloudfoundry-incubator/cf-test-helpers/cf" "github.com/cloudfoundry-incubator/cf-test-helpers/generator" "github.com/cloudfoundry/cf-acceptance-tests/helpers" ) var _ = Describe("An application being staged with Diego", func() { var appName string BeforeEach(func() { appName = generator.RandomName() }) AfterEach(func() { Eventually(cf.Cf("delete", appName, "-f"), DEFAULT_TIMEOUT).Should(Exit(0)) }) It("has its staging log streamed during a push", func() { //Diego needs a custom buildpack until the ruby buildpack lands Eventually(cf.Cf("push", appName, "-p", helpers.NewAssets().Dora, "--no-start", "-b=https://github.com/cloudfoundry/cf-buildpack-ruby/archive/master.zip"), CF_PUSH_TIMEOUT).Should(Exit(0)) Eventually(cf.Cf("set-env", appName, "CF_DIEGO_BETA", "true"), DEFAULT_TIMEOUT).Should(Exit(0)) start := cf.Cf("start", appName) Eventually(start, CF_PUSH_TIMEOUT).Should(Say("Downloading App Package")) Eventually(start, CF_PUSH_TIMEOUT).Should(Say("Downloaded App Package")) Eventually(start, CF_PUSH_TIMEOUT).Should(Say(`Staging\.\.\.`)) Eventually(start, CF_PUSH_TIMEOUT).Should(Exit(0)) }) })
. "github.com/onsi/gomega/gexec" "github.com/cloudfoundry-incubator/cf-test-helpers/cf" "github.com/cloudfoundry-incubator/cf-test-helpers/generator" "github.com/cloudfoundry/cf-acceptance-tests/helpers" ) var _ = Describe("Changing an app's start command", func() { var appName string BeforeEach(func() { appName = generator.RandomName() Expect(cf.Cf( "push", appName, "-p", helpers.NewAssets().Dora, "-d", helpers.LoadConfig().AppsDomain, "-c", "FOO=foo bundle exec rackup config.ru -p $PORT", ).Wait(CF_PUSH_TIMEOUT)).To(Exit(0)) }) AfterEach(func() { Expect(cf.Cf("delete", appName, "-f").Wait(DEFAULT_TIMEOUT)).To(Exit(0)) }) It("takes effect after a restart, not requiring a push", func() { Expect(helpers.CurlApp(appName, "/env/FOO")).To(ContainSubstring("foo")) var response cf.QueryResponse cf.ApiRequest("GET", "/v2/apps?q=name:"+appName, &response)
) var _ = Describe("Buildpacks", func() { var appName string BeforeEach(func() { appName = generator.RandomName() }) AfterEach(func() { Expect(cf.Cf("delete", appName, "-f").Wait(DEFAULT_TIMEOUT)).To(Exit(0)) }) Describe("node", func() { It("makes the app reachable via its bound route", func() { Expect(cf.Cf("push", appName, "-p", helpers.NewAssets().Node, "-c", "node app.js").Wait(CF_PUSH_TIMEOUT)).To(Exit(0)) Expect(helpers.CurlAppRoot(appName)).To(ContainSubstring("Hello from a node app!")) }) }) Describe("java", func() { It("makes the app reachable via its bound route", func() { Expect(cf.Cf("push", appName, "-p", helpers.NewAssets().Java).Wait(CF_PUSH_TIMEOUT)).To(Exit(0)) Expect(helpers.CurlAppRoot(appName)).To(ContainSubstring("Hello, from your friendly neighborhood Java JSP!")) }) }) Describe("go", func() { It("makes the app reachable via its bound route", func() {
"github.com/cloudfoundry-incubator/cf-test-helpers/generator" "github.com/cloudfoundry/cf-acceptance-tests/helpers" ) var _ = Describe("An application being staged", func() { var appName string BeforeEach(func() { appName = generator.RandomName() }) AfterEach(func() { cf.Cf("delete", appName, "-f").Wait(DEFAULT_TIMEOUT) }) It("has its staging log streamed during a push", func() { push := cf.Cf("push", appName, "-p", helpers.NewAssets().Dora).Wait(CF_PUSH_TIMEOUT) output := string(push.Buffer().Contents()) expected := []string{"Installing dependencies", "Uploading droplet", "App started"} found := false for _, value := range expected { if strings.Contains(output, value) { found = true break } } Expect(found).To(BeTrue(), "Did not find one of the expected log lines: %s", expected) }) })
"github.com/cloudfoundry-incubator/cf-test-helpers/cf" "github.com/cloudfoundry-incubator/cf-test-helpers/generator" "github.com/cloudfoundry/cf-acceptance-tests/helpers" "github.com/onsi/gomega/gbytes" ) var _ = Describe("When staging fails", func() { var appName string var start *Session BeforeEach(func() { appName = generator.RandomName() //Diego needs a custom buildpack until the ruby buildpack lands Eventually(cf.Cf("push", appName, "-p", helpers.NewAssets().Dora, "--no-start", "-b=http://example.com/so-not-a-thing/adlfijaskldjlkjaslbnalwieulfjkjsvas.zip"), CF_PUSH_TIMEOUT).Should(Exit(0)) Eventually(cf.Cf("set-env", appName, "CF_DIEGO_BETA", "true"), DEFAULT_TIMEOUT).Should(Exit(0)) }) AfterEach(func() { Eventually(cf.Cf("delete", appName, "-f"), DEFAULT_TIMEOUT).Should(Exit(0)) }) JustBeforeEach(func() { start = cf.Cf("start", appName) }) It("informs the user in the CLI output and the logs", func() { Eventually(start, CF_PUSH_TIMEOUT).Should(Exit(1)) Ω(start.Out).Should(gbytes.Say("Staging error: cannot get instances since staging failed"))