From a380bcd1c1d7fe127ee845d7dc5d40523da82461 Mon Sep 17 00:00:00 2001
From: Hypolite Petovan <mrpetovan@gmail.com>
Date: Sun, 1 Jul 2018 04:03:57 -0400
Subject: [PATCH] Fix more undefined variable/index notice in tests

---
 include/api.php            |  2 +-
 include/text.php           |  4 ++--
 mod/item.php               | 22 +++++++++++----------
 mod/wall_upload.php        | 40 +++++++++++++++++++++++---------------
 src/Model/Conversation.php |  2 +-
 src/Model/Item.php         |  2 +-
 tests/ApiTest.php          |  2 ++
 7 files changed, 43 insertions(+), 31 deletions(-)

diff --git a/include/api.php b/include/api.php
index a9a1800af1..85f489b799 100644
--- a/include/api.php
+++ b/include/api.php
@@ -1482,7 +1482,7 @@ function api_users_lookup($type)
 {
 	$users = [];
 
-	if (x($_REQUEST['user_id'])) {
+	if (!empty($_REQUEST['user_id'])) {
 		foreach (explode(',', $_REQUEST['user_id']) as $id) {
 			if (!empty($id)) {
 				$users[] = api_get_user(get_app(), $id);
diff --git a/include/text.php b/include/text.php
index 04bbb67244..0066e18814 100644
--- a/include/text.php
+++ b/include/text.php
@@ -1156,7 +1156,7 @@ function put_item_in_cache(&$item, $update = false)
 	$rendered_html = defaults($item, 'rendered-html', '');
 
 	if ($rendered_hash == ''
-		|| $item["rendered-html"] == ""
+		|| $rendered_html == ""
 		|| $rendered_hash != hash("md5", $item["body"])
 		|| Config::get("system", "ignore_cache")
 	) {
@@ -1176,7 +1176,7 @@ function put_item_in_cache(&$item, $update = false)
 			$update = true;
 		}
 
-		if ($update && ($item["id"] > 0)) {
+		if ($update && !empty($item["id"])) {
 			Item::update(['rendered-html' => $item["rendered-html"], 'rendered-hash' => $item["rendered-hash"]],
 					['id' => $item["id"]]);
 		}
diff --git a/mod/item.php b/mod/item.php
index be9fa09c47..95eaa9d78c 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -178,6 +178,8 @@ function item_post(App $a) {
 		return;
 	}
 
+	$categories = '';
+
 	if ($orig_post) {
 		$str_group_allow   = $orig_post['allow_gid'];
 		$str_contact_allow = $orig_post['allow_cid'];
@@ -223,13 +225,13 @@ function item_post(App $a) {
 			$str_contact_deny  = perms2str($_REQUEST['contact_deny']);
 		}
 
-		$title             = notags(trim($_REQUEST['title']));
-		$location          = notags(trim($_REQUEST['location']));
-		$coord             = notags(trim($_REQUEST['coord']));
-		$verb              = notags(trim($_REQUEST['verb']));
-		$emailcc           = notags(trim($_REQUEST['emailcc']));
-		$body              = escape_tags(trim($_REQUEST['body']));
-		$network           = notags(trim(defaults($_REQUEST, 'network', NETWORK_DFRN)));
+		$title             =      notags(trim(defaults($_REQUEST, 'title'   , '')));
+		$location          =      notags(trim(defaults($_REQUEST, 'location', '')));
+		$coord             =      notags(trim(defaults($_REQUEST, 'coord'   , '')));
+		$verb              =      notags(trim(defaults($_REQUEST, 'verb'    , '')));
+		$emailcc           =      notags(trim(defaults($_REQUEST, 'emailcc' , '')));
+		$body              = escape_tags(trim(defaults($_REQUEST, 'body'    , '')));
+		$network           =      notags(trim(defaults($_REQUEST, 'network' , NETWORK_DFRN)));
 		$guid              = get_guid(32);
 
 		$postopts = defaults($_REQUEST, 'postopts', '');
@@ -279,15 +281,15 @@ function item_post(App $a) {
 		}
 	}
 
-	if (strlen($categories)) {
+	if (!empty($categories)) {
 		// get the "fileas" tags for this post
 		$filedas = file_tag_file_to_list($categories, 'file');
 	}
 	// save old and new categories, so we can determine what needs to be deleted from pconfig
 	$categories_old = $categories;
-	$categories = file_tag_list_to_file(trim($_REQUEST['category']), 'category');
+	$categories = file_tag_list_to_file(trim(defaults($_REQUEST, 'category', '')), 'category');
 	$categories_new = $categories;
-	if (strlen($filedas)) {
+	if (!empty($filedas)) {
 		// append the fileas stuff to the new categories list
 		$categories .= file_tag_list_to_file($filedas, 'file');
 	}
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index 7067077eb7..8bf2966152 100644
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -125,28 +125,36 @@ function wall_upload_post(App $a, $desktopmode = true)
 		$filetype = $_FILES['userfile']['type'];
 
 	} elseif (x($_FILES, 'media')) {
-		if (is_array($_FILES['media']['tmp_name'])) {
-			$src = $_FILES['media']['tmp_name'][0];
-		} else {
-			$src = $_FILES['media']['tmp_name'];
+		if (!empty($_FILES['media']['tmp_name'])) {
+			if (is_array($_FILES['media']['tmp_name'])) {
+				$src = $_FILES['media']['tmp_name'][0];
+			} else {
+				$src = $_FILES['media']['tmp_name'];
+			}
 		}
 
-		if (is_array($_FILES['media']['name'])) {
-			$filename = basename($_FILES['media']['name'][0]);
-		} else {
-			$filename = basename($_FILES['media']['name']);
+		if (!empty($_FILES['media']['name'])) {
+			if (is_array($_FILES['media']['name'])) {
+				$filename = basename($_FILES['media']['name'][0]);
+			} else {
+				$filename = basename($_FILES['media']['name']);
+			}
 		}
 
-		if (is_array($_FILES['media']['size'])) {
-			$filesize = intval($_FILES['media']['size'][0]);
-		} else {
-			$filesize = intval($_FILES['media']['size']);
+		if (!empty($_FILES['media']['size'])) {
+			if (is_array($_FILES['media']['size'])) {
+				$filesize = intval($_FILES['media']['size'][0]);
+			} else {
+				$filesize = intval($_FILES['media']['size']);
+			}
 		}
 
-		if (is_array($_FILES['media']['type'])) {
-			$filetype = $_FILES['media']['type'][0];
-		} else {
-			$filetype = $_FILES['media']['type'];
+		if (!empty($_FILES['media']['type'])) {
+			if (is_array($_FILES['media']['type'])) {
+				$filetype = $_FILES['media']['type'][0];
+			} else {
+				$filetype = $_FILES['media']['type'];
+			}
 		}
 	}
 
diff --git a/src/Model/Conversation.php b/src/Model/Conversation.php
index 17f151fe03..69bbc3bb6d 100644
--- a/src/Model/Conversation.php
+++ b/src/Model/Conversation.php
@@ -61,7 +61,7 @@ class Conversation
 					unset($old_conv['source']);
 				}
 				// Update structure data all the time but the source only when its from a better protocol.
-				if (($old_conv['protocol'] < $conversation['protocol']) && ($old_conv['protocol'] != 0)) {
+				if (isset($conversation['protocol']) && isset($conversation['source']) && ($old_conv['protocol'] < $conversation['protocol']) && ($old_conv['protocol'] != 0)) {
 					unset($conversation['protocol']);
 					unset($conversation['source']);
 				}
diff --git a/src/Model/Item.php b/src/Model/Item.php
index 9fbe973eed..5d858fa72b 100644
--- a/src/Model/Item.php
+++ b/src/Model/Item.php
@@ -1989,7 +1989,7 @@ class Item extends BaseObject
 			Contact::unmarkForArchival($contact);
 		}
 
-		$update = (!$arr['private'] && (($arr["author-link"] === $arr["owner-link"]) || ($arr["parent-uri"] === $arr["uri"])));
+		$update = (!$arr['private'] && ((defaults($arr, 'author-link', '') === defaults($arr, 'owner-link', '')) || ($arr["parent-uri"] === $arr["uri"])));
 
 		// Is it a forum? Then we don't care about the rules from above
 		if (!$update && ($arr["network"] == NETWORK_DFRN) && ($arr["parent-uri"] === $arr["uri"])) {
diff --git a/tests/ApiTest.php b/tests/ApiTest.php
index 0d9e0b538b..f1857ad272 100644
--- a/tests/ApiTest.php
+++ b/tests/ApiTest.php
@@ -1110,6 +1110,7 @@ class ApiTest extends DatabaseTest
 				'width' => 666,
 				'height' => 666,
 				'tmp_name' => $this->getTempImage(),
+				'name' => 'spacer.png',
 				'type' => 'image/png'
 			]
 		];
@@ -1217,6 +1218,7 @@ class ApiTest extends DatabaseTest
 				'width' => 666,
 				'height' => 666,
 				'tmp_name' => $this->getTempImage(),
+				'name' => 'spacer.png',
 				'type' => 'image/png'
 			]
 		];
-- 
2.39.5