TestSuite for Popcorn blackbox testing.

Introduced properties

fun client_test

popcorn :: TestPopcorn :: client_test

Redefine this method to implement your test scenario.
fun host: String

popcorn :: TestPopcorn :: host

Host used to run App.
protected fun host=(host: String)

popcorn :: TestPopcorn :: host=

Host used to run App.
fun host_re: Regex

popcorn :: TestPopcorn :: host_re

Regex to catch and hide the port from the output to get consistent results
protected fun host_re=(host_re: Regex)

popcorn :: TestPopcorn :: host_re=

Regex to catch and hide the port from the output to get consistent results
fun port: Int

popcorn :: TestPopcorn :: port

Port used to run App.
protected fun port=(port: Int)

popcorn :: TestPopcorn :: port=

Port used to run App.
fun run_test(app: App)

popcorn :: TestPopcorn :: run_test

Run the test suite on the App.
fun system(cmd: String, title: nullable String)

popcorn :: TestPopcorn :: system

Execute a System function.
fun test_path: String

popcorn :: TestPopcorn :: test_path

Directory of the current test suite
protected fun test_path=(test_path: String)

popcorn :: TestPopcorn :: test_path=

Directory of the current test suite

Redefined properties

redef type SELF: TestPopcorn

popcorn $ TestPopcorn :: SELF

Type of this instance, automatically specialized in every class

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun client_test

popcorn :: TestPopcorn :: client_test

Redefine this method to implement your test scenario.
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
fun host: String

popcorn :: TestPopcorn :: host

Host used to run App.
protected fun host=(host: String)

popcorn :: TestPopcorn :: host=

Host used to run App.
fun host_re: Regex

popcorn :: TestPopcorn :: host_re

Regex to catch and hide the port from the output to get consistent results
protected fun host_re=(host_re: Regex)

popcorn :: TestPopcorn :: host_re=

Regex to catch and hide the port from the output to get consistent results
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun port: Int

popcorn :: TestPopcorn :: port

Port used to run App.
protected fun port=(port: Int)

popcorn :: TestPopcorn :: port=

Port used to run App.
fun run_test(app: App)

popcorn :: TestPopcorn :: run_test

Run the test suite on the App.
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
fun system(cmd: String, title: nullable String)

popcorn :: TestPopcorn :: system

Execute a System function.
fun test_path: String

popcorn :: TestPopcorn :: test_path

Directory of the current test suite
protected fun test_path=(test_path: String)

popcorn :: TestPopcorn :: test_path=

Directory of the current test suite
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
package_diagram popcorn::TestPopcorn TestPopcorn core::Object Object popcorn::TestPopcorn->core::Object

Parents

interface Object

core :: Object

The root of the class hierarchy.

Class definitions

popcorn $ TestPopcorn
# TestSuite for Popcorn blackbox testing.
class TestPopcorn

	# Host used to run App.
	var host: String = test_host

	# Port used to run App.
	var port: Int = test_port

	# Directory of the current test suite
	#
	# Useful when your tested app need to load some external files.
	var test_path: String = "NIT_TESTING_PATH".environ.dirname

	# Run the test suite on the App.
	fun run_test(app: App) do
		var server = new AppThread(host, port, app)
		server.start
		0.1.sleep

		var client = new ClientThread(self)
		client.start
		client.join
		0.1.sleep

		exit 0
	end

	# Redefine this method to implement your test scenario.
	fun client_test do end

	# Regex to catch and hide the port from the output to get consistent results
	var host_re: Regex = "localhost:\[0-9\]+".to_re

	# Execute a System function.
	fun system(cmd: String, title: nullable String)
	do
		title = title or else cmd
		title = title.replace(host_re, "localhost:*****")
		print "\n[Client] {title}"
		sys.system cmd
	end
end
lib/popcorn/pop_tests.nit:126,1--168,3